PLSQL配置監聽

這個錯誤主要是pl/sql客戶端的tnsnames.ora配置錯誤,或者是輸入 database選項錯誤。
配置pl/sql的Database的兩種方式:
登錄時直接在Database選項輸入數據庫信息

如上圖,直接在登錄時輸入數據庫信息 ip:端口/數據庫名 。(若不為默認端口1521,一定要輸入端口,不然會報錯誤“無監聽程序”)。
修改tnsnames.ora
如下圖,找到pl/sql客戶端的安裝目錄,再找到network/admin目錄下的tnsmames.ora

編輯tnsnames.ora,在末尾添加需要的數據庫信息:
如圖:

這里我配置的數據庫名為scm,數據庫服務器的IP地址(HOST),端口為1521,注意別名scm前不要帶空格。
scm =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = SCM)
)
)
再打開pl/sql客戶端,Database選項選擇剛才配置的scm,輸入用戶名和密碼即可。如圖:

當發現使用IP可以登錄正常,但是別名無法登錄時,繼續向下看
其中一個問題是環境變量缺失TNS_ADMIN
在win10上安裝了一個11g的客戶端,發現連接不上公司的數據庫,解決的辦法參考下面的方法。
解決了 Initialization error Could not load 的問題,在登陸界面填寫完信息進行登錄時,又出現了另一個
問題 ORA-12154: TNS:could not resolve the connect identifier specified ,即無法解析指定的連接
標識符。這說明缺少了一個環境變量,TNS_ADMIN 。
解決方法:
windows:
右擊 我的電腦 -> 屬性 -> 高級 -> 環境變量 -> Administrator 的用戶變量 -> 新建 ,
變量名為:TNS_ADMIN
變量值為:%ORACLE_HOME%/NETWORK/ADMIN/
其中 %ORACLE_HOME% 即 Orcale 的安裝路徑,
其實,設置的該環境變量的值為 tnsnames.ora文件所在路徑,特別是重裝后或其它操作,忘了設置
TNS_ADMIN 變量,PL/SQL 登陸就會報“無法解析指定的連接標識符”的錯誤 ,而設置TNS_ADMIN變
量是為了能夠找到 tnsnames.ora。如果本機上安裝了ORACLE,並且設置了 ORACLE_HOME 環境變
量,那么會自動在 %ORACLE_HOME%/NETWORK/ADMIN/位置查找 tnsnames.ora 文件。
這里是Linux的配置
vim ~/ .bash_profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/bin
export PATH
TMP=/tmp; export TMP
TMPDIR=$TMP; export TMPDIR
ORACLE_HOSTNAME=yidongapptestdb; export ORACLE_HOSTNAME
ORACLE_UNQNAME=MIBD11G; export ORACLE_UNQNAME
ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1; export ORACLE_HOME
ORACLE_SID=MIBD11G; export ORACLE_SID
PATH=/usr/bin:$PATH; export PATH
PATH=$ORACLE_HOME/bin:$PATH; export PATH
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATH
export TNS_ADMIN=/u01/app/oracle/product/11.2.0/db_1/network/admin
參照博客:ORA-12154: TNS:could not resolve the connect identifier specified
https://blog.csdn.net/u012852374/article/details/54346203

