鏈接oracle 11g忽然蹦出了一個錯誤「ORA-28547:connection to server failed,probable Oracle Net admin error」,見下圖,我勒個去,真是鬱悶死了,無奈在網上搜索了很久找到了解決方法,寫下來了以便之後參考。 html
第一個方法解決方案: sql
listener.ora是服務器端的配置oracle的文件。 數據庫
後來將listener.ora的這一行註釋掉,就好了,, (PROGRAM = extproc)
修改成:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = prod)
(ORACLE_HOME = /u01/app/oracle/product/10.2.0/db_1)
# (PROGRAM = extproc)
)
) 服務器
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.8)(PORT = 1522))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
)
) oracle
第二種解決方案以下: app
參考路徑:https://forums.oracle.com/forums/message.jspa?messageID=693607 jsp
整理以下: 工具
客戶端的配置文件sqlnet.ora中配置以下: spa
將#SQLNET.AUTHENTICATION_SERVICES= (NTS)註釋掉,改爲以下便可! server
以下:
SQLNET.AUTHENTICATION_SERVICES= (NONE)
同時修改監聽器配置文件,具體作法是: 在oracle安裝目錄下搜索listener.ora文件,通常在$/NETWORK/ADMIN目錄下,把主機名用ip地址代替,例如(ADDRESS = (PROTOCOL = TCP)(HOST = HBONLINE1)(PORT = 1523))改成(ADDRESS = (PROTOCOL = TCP)(HOST = 168.168.168.42)(PORT = 1523))。
第三種解決方案:
若是你以上使用的是plsql developer工具或者是toad工具,應該以上的操做就絕對能夠解決你的問題,
可是若是你使用的是navicat工具,以上怕是還不能解決你的問題。具體的若是在navicat工具上使用就是以下的問題:
Oracle基本是默認安裝,安裝過程沒出現過任何異常
Oracle開啓了兩個服務:OracleServiceORCL和OracleOraDb11g_home1TNSListener
Navicat一直都鏈接不上本地的Oracle
網上搜了一大堆資料,大都是改那3個配置文件的
最終仍是沒能解決這個問題
最終的問題是:
Navicat主機那裏若是填本機IP地址(192.168.18.8),錯誤代碼是:ORA-12541:TNS:no listener
若是填localhost,錯誤代碼是:ORA-28547:connection to server failed,probable Oracle Net admin error
tnsping localhost 是通的,tnsping 192.168.18.8 則出錯 TNS-12541: TNS: 無監聽程序
解決的方案是:
oci.dll的版本不對
從 http://www.oracle.com/technology/software/tech/oci/instantclient/index.html 下載client
裏面不少,根據你的版原本下,我下載的是instantclient_11_1。
在navicat的 工具-選項-其餘-OCI ,選擇剛下的client中的 oci.dll
設置環境變量:
1)在環境變量PATH中開頭增長C:\Instantclient10_2;
2)增長用戶環境變量SQLPATH,值爲C:\Instantclient10_2
3)增長用戶環境變量NLS_LANG,值爲AMERICAN_AMERICA.UTF8
選擇 Basic 鏈接,就大概能鏈接上了
以上的操做能夠經過以下進行排查:
進行查找: 一、首先確認你的數據庫已經啓動了,能夠用net start OracleServiceORCL 二、其次確認你的偵聽啓動了否,用lsnrctl status查看,若是沒有啓動,用lsnrctl start啓動。 三、以上啓動後,直接打開sqlplus,輸入用戶名密碼,無需輸入服務名,直接登陸便可。