macでEclipseのDB Viewerにつなぐ
2020/02/15
macに変えた
PCをmacに変えたが色々と不便さもある(笑)
まずmac対応のOracle Databaseが無い!
WindowsとLinuxしか対応していない(笑)
どうにかmacでもOracleを使用したかったので、調べてみるといくつか方法がある中でぼくはdockerを使用してOracleを入れました。
Eclipseを現在職場で使用していて、家でもその環境を整えたいと思い、セットアップしていたが問題が発生。EclipseからDBにつながらい!!
登録する際の、接続情報の設定でのデータベース定義で
IOエラー: The Network Adapter could not establish the connection
このようなエラーが表示されます。
パスワード、ユーザ名、SID名などの接続文字列は正しく記述しています。
ターミナルでもコマンドで確認しているのでそこは間違いないかと。
その解決方法を今回はご紹介しようと思う。
権限を付与していなかったことが原因
【環境】
OS : mac
DB : Oracle Database 12c
1 2 |
GRANT DBA TO ユーザ名 ; GRANT UNLIMITED TABLESPACE TO ユーザ名 ; |
上記のようにロールの付与と表領域の使用量を無制限にはしていましたが、
ユーザにコネクションの権限がなかったことが原因でした。
1 |
GRANT CONNECT , RESOURCE TO ユーザ名; |
で権限を与えました。
その後、listener.oraに
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1)) (ADDRESS = (PROTOCOL = TCP)(HOST = DBホスト)(PORT = 1521)) ) ) SID_LIST_LISTENER= (SID_LIST= (SID_DESC= (GLOBAL_DBNAME=PDB名) (ORACLE_HOME=/opt/oracle/product/12.2.0.1/dbhome_1) (SID_NAME = CLRExtProc)) (SID_DESC= (SID_NAME = CLRExtProc) (ORACLE_HOME=/opt/oracle/product/12.2.0.1/dbhome_1) (PROGRAM=extproc))) USE_SID_AS_SERVICE_LISTENER = ON DEDICATED_THROUGH_BROKER_LISTENER=ON DIAG_ADR_ENABLED = off |
と記載。
tnsnames.oraには、
1 2 3 4 5 6 7 8 9 |
ORCLCDB=localhost:1521/ORCLCDB ORCLPDB1= (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = DBホスト名)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME =PDB名) ) ) |
sqlnet.oraには、
1 2 |
NAME.DIRECTORY_PATH= (TNSNAMES, EZCONNECT, HOSTNAME) SQLNET.ALLOWED_LOGON_VERSION=8 |
と記載。
これでいけました。