Oracle資料庫使用sqlplus時的串連錯誤與方向鍵亂碼解決_oracle

來源:互聯網
上載者:User

串連錯誤
安裝好以後,我登入企業後台(http://ubuntu:1158/em)報錯,用sqlplus串連oracle也報錯。
一,遇到的錯誤如下
1,ORA-12505: TNS:listener does not currently know of SID given in connect descriptor (DBD ERROR: OCIServerAttach)
2,ORA-28547: connection to server failed, probable Oracle Net admin error (DBD ERROR: OCISessionBegin)
3,sqlplus: error while loading shared libraries: libsqlplus.so: cannot open shared object file: No such file or directory
二,解決方案如下
1.解決問題一,ORA-12505: TNS:listener does not currently know of SID given in connect descriptor (DBD ERROR: OCIServerAttach)
(1),找到tnsname.ora,listerner.ora的位置

root@ubuntu:/opt/ora10/network/admin# ls
listener.ora samples shrept.lst sqlnet.ora tnsnames.ora

(2),修改listerner.ora配置
將(SID_NAME = PLSExtProc)改成(SID_NAME = ora1),SID_NAME在oracle管理後台http://ubuntu:1158/em中可以看到
2.解決問題二,ORA-28547: connection to server failed, probable Oracle Net admin error (DBD ERROR: OCISessionBegin)
問題一解決完後,就冒出這個問題,我在網上查了一下,千篇一律說這樣解決,其實根本沒有用。
(1). 修改oracle的網路設定檔,具體做法是:在oracle安裝目錄下搜尋sqlnet.ora檔案,一般在$NETWORKADMIN目錄下,
用記事本開啟把檔案中的一行:

SQLNET_AUTHENTICATION_SERVICES= (NTS)

修改為:

SQLNET_AUTHENTICATION_SERVICES= (NONE)

我發現我的sqlnet.ora根本沒有這項目設定,我的sqlnet.ora裡面只有一句是NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)
(2). 同時修改監聽器設定檔,具體做法是: 在oracle安裝目錄下搜尋listener.ora檔案,一般在$NETWORKADMIN目錄下,把主機名稱用ip地址代替,例如(ADDRESS = (PROTOCOL = TCP)(HOST = HBONLINE1)(PORT = 1523))改為(ADDRESS = (PROTOCOL = TCP)(HOST = 168.168.168.42)(PORT = 1523))
關於這種點,我更是不明白了,為什麼換成ip,HOST後面對應的值,在/etc/hosts裡面有映射,沒必要換成ip.
根本原因是oracle服務根本沒起來,可以通過ps -e |grep -i oracle來查看一下。啟動起來就不會有這個問題了。

SQL> startup
ORACLE instance started.

3.解決問題三,sqlplus: error while loading shared libraries: libsqlplus.so: cannot open shared object file: No such file or directory
當我用zhangying@ubuntu:~$ sqlplus / as sysdba去登入時,提示上面的錯誤,解決方案如下
chmod -R a+rX /opt/ora10/
這裡/opt/ora10是的我$ORACLE_HOME目錄,加上後可以進去了。

方向鍵亂碼
用sqlplus串連oracle,方向鍵老是亂碼,SQL> ^[[A^[[A^[[B^[[B^[[D^,linux 用的是ubuntu 10.10 解決方案如下
一,下載安裝readline

apt-get install libreadline5-dev  //ubuntu要安裝這個 wget ftp://ftp.gnu.org/gnu/readline/readline-6.2.tar.gz tar zxvf readline-6.2.tar.gz cd readline-6.2 wget ftp://ftp.gnu.org/gnu/readline/readline-6.2-patches/readline62-001 wget ftp://ftp.gnu.org/gnu/readline/readline-6.2-patches/readline62-001.sig patch -p0 < readline62-001  //打補丁 ./configure make && make install 

注意:-p後面的是零,不是字母o。如果不安裝apt-get install libreadline5-dev這個話,安裝rlwrap,./configure老是報錯。
二,安裝rlwrap

wget http://utopia.knoware.nl/~hlub/uck/rlwrap/rlwrap-0.37.tar.gz tar zxvf rlwrap-0.37.tar.gz cd rlwrap-0.37 ./configure make && make install 

注意:先裝readline,然後安裝rlwrap,不然./configure的時候會報錯的,如下

configure: error:You need the GNU readline library(ftp://ftp.gnu.org/gnu/readline/ ) to buildthis program!

三,修改使用者根目錄下的.bashrc

# some more ls aliases  alias ll='ls -alF'  alias la='ls -A'  alias l='ls -CF'   alias sqlplus='rlwrap sqlplus'  //添加這一行 

修改.bashrc要重起電腦。如果沒有.bashrc,修改.bash_profile或者.profile檔案。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.