使用navicat連接oracle數據庫遇到問題及解決方法
在服務器上安裝好oracle之后,在公司要求研究數據遷移,一直看命令行不太舒服,就想着用自己電腦上的navicat連接上服務器上的Oracle,結果遇到了一些問題,現在記錄下來,方便查閱,也供大家參考。
1.ORA-12541:TNS :no listener
解決方法:開啟監聽 :lsnrctl start (stop/status) --開啟,關閉,查看狀態
(溫馨提示:使用sqlplus / as sysdba 進入oracle數據庫時,會提示你輸入用戶名和密碼,可能是因為你沒有切換到oracle用戶)
2.ORA-12514:TNS:listener does not currently know of service requested in connect descriptor
1.查看你的tnsnames.ora文件(放在你的oracle安裝目錄里,比如我的是 /ora/oracle/product/11.2.0/db_1/network/admin/tnsnames.ora,如果實在不想打的話,使用find / -name tnsnames.ora也可以找到)以及服務名是否能對應上
2.檢查確認數據庫實例是否啟動 select status from v$instance
我這里是報錯了
如果成功,會顯示success
上圖報ORA-01034錯誤,顯示oracle不可用,就是沒有開啟實例
,可通過以下幾步開啟。
(1)sqlplus /nolog
(2)conn / as sysdba
(3) startup
開啟后重新測試測試一下,select status from v$instance,顯示打開,navicat再測試連接一下,成功就可以了
3.ORA-03135: connection lost contact
按照經驗,由於我是遠程連接oracle,需要服務器上的防火牆開放端口1521,我覺得可能是防火牆端口沒開,查看一下防火牆開放的端口(iptables -L -n)
我執行了以下幾步開啟了端口
(1)編輯iptables文件:vim /etc/sysconfig/iptables
(2)添加開放端口配置
(3)重啟一下防火牆:systemctl restart iptables
(4)重新查看一下端口開放情況
(兩個選擇一個開放,我就是兩個都寫了結果沖突還是什么原因)
4.ORA-28547:connection to server failed, probable Oracle Net admin error
或者你打開navicat時連接oracle,顯示“oracle library is not loaded”,可通過以下方法解決:
(1)https://www.oracle.com/database/technologies/instant-client/downloads.html
(2)下載跟你oracle版本對應的,像我是64bit的就下載x64的
(3)進去之后可能有很多版本,我下載的是18.5.0.0.0的,這個關系不大,要求登錄就注冊個賬號就好了
(4)下載好之后解壓
(5)按照圖片更改oci的路徑即可
(6)成功連接