本ブログは、オラクル・クラウドの個人ブログ一覧 【100件以上の記事を随時更新中】の1つです。
初めに
SQL Developerは、オラクルが提供する便利なGUIツールです。オラクルDBだけではなく、他の多種なDBにも対応します。今回は、様々なDBに接続する方法を紹介します。
DBに対するすべての操作は、接続から始まります。この記事が、DBに接続できずに困っている方々の参考になれば幸いです。
※、2022年4~5月、OCI Bation経由で「Oracle Base DB」、「Autonomous DB」及び「MySQL DB Servcie」への接続方法を追記しました。今後も他のターゲットDBを引き続き紹介していきます。左上の"LIKE"(LGTM)をいただければとても励みになります。
SQL Developerの基本情報
最新バージョン:23.1.1 (2024年9月時点)
対応OS:Windows/Linux/MacOS/Other
料金:無償
様々なDBに接続する
No. | 接続先DB | JDBC Driver | TCP Port | コメント |
---|---|---|---|---|
1 | Oracle DB | 追加不要 | 1521 | 11gR2,12c,18c,19c,21c (On-P/Cloud) |
2 | Autonomous DB | 追加不要 | 1522 | パブリックADBに接続する場合は、ウォレットが必須 |
3 | MySQL | mysql-connector-java-8.0.23.jar | 3306 | ドライバーはMariaDBにも適用。 Amazon RDS for MySQLにも接続できる。 |
4 | MariaDB | 同上 | 3306 | |
5 | PostgreSQL | postgresql-42.2.19.jar | 5432 | |
6 | IBM DB2 | db2jcc.jar, db2jcc4.jar | 25000 or 50000 | DB2 11.5.6から、デフォルトポート番号は25000に変更される。 |
7 | MS SQL Server | jtds-1.3.1.jar | 1433 | ドライバーはSybaseにも適用 |
※JDBCドライバーは、2021年3月時点の情報です。
※以前、SQL DeveloprがNoSQLへの接続も対応していましたが、この記事を書いた時点(2021年3月)で、もう対応しませんのでご了承ください。
SQL Developer の準備
ダウンロードURL:https://www.oracle.com/tools/downloads/sqldev-downloads.html
Windows OS の場合
この例では、JDK8付きのWindows版を使用します。
Zipファイルを解凍して後、sqldeveloper.exeを実行すれば起動できます。(インストール不要)
前のバージョンの設定内容をIMPORTしたい場合、Yesにして、新規インストールの場合、Noにして進んでください。
Linux OS の場合
Windows だけではなく、LinuxでもSQL Developerが問題なく使えます。
次の記事は、Oracle Linux(OCI Compute VM)での利用方法のご紹介です。
Oracle LinuxでSQL Developerを利用する方法
GUIの設定変更
SQL DeveloperのGUIは、言語設定とフォントサイズの変更ができます。このブログの最後に、変更方法のご紹介があります。
A-1. GUI言語設定の変更 (日本語に変更する例)
A-2. GUIフォントサイズの変更
1. Oracle DBへの接続
1-1. 直接に接続する
接続先のOracle DB(またBase DBサービス)が、パブリックかプライベート・サブネットに格納されます。クライアン側から接続に行く時、それぞれパブリック・アクセス経由か、VPN/Fastconnect経由で、直接に接続できます。この場合、SQL Developerの設定はとても簡単です。この例は、OCIのパブリック・サブネットにあるBase DBインスタンスを使用します。
-
接続を新規作成
Database Type: デフォルト(Oracle)を指定
Role: デフォルトのままでよいが、必要に応じて指定できます。
Username,Password: ユーザ名とパスワードを入力。
Hostname: ホスト名、或いはIPアドレスを入力(この例は、Base DBインスタンスのパブリックIPを入力)。
Port: 1521 (デフォルト)
SID、Service Name: 片方を入力(PDBへ接続したい場合、PDBのサービス名を入力)。
Save Password: チェックしたら、次回接続の時、パスワードの入力が省略できます。
「テスト」ボタンを押し、接続をテストします。接続成功を確認したら、「接続」ボタンを押し、接続を立てます。
サービス名の確認方法については、こちらの記事(Oracle Base DBのサービス名を取得する)をご参照ください。
接続の問題
DBへの接続が失敗した場合、以下のような原因は一般的です。ご参考ください。
- 無効なユーザーまたはパスワード。
- ユーザー・ロールの指定は間違った。
- DBインスタンスは、まだ起動していない。
- 物理サーバかIaaS DBの場合、接続先サーバのファイアウォールには、リスナー・ポート(1521)が公開されていない。
- クラウドDBの場合、リスナー・ポート(TCP 1521)は、Ingressルールに追加されていない。(セキュリティ・リストまたはNSGを確認してください。)
1-2. OCI Bastionサービスで接続する
接続先のOracle DBがクラウド上にある場合、プライベート・サブネットに格納されるのは一般的です。この場合、On-Pからパブリック・アクセス経由で、直接にアクセスできないです。VPNを設定しない場合、踏み台サーバを利用し接続できますが、OCI Bastion サービスを利用すれば、踏み台サーバを立てず、On-Pのクライアントから、プライベート・サブネット内のOracle DBに接続できます。
設定方法の詳細については、次の記事をご参照ください。
OCI Bastion経由でプライベート・サブネット内のOracle DBに接続する
2. Autonomous DBへの接続
2-1. 直接に接続する
以下の2パターンは、いずれも直結の接続方法です(踏み台サーバ不要)。
No. | 説明 | コメント |
---|---|---|
1 | パブリック・アクセス経由で、ADBに接続 | ADBがパブリック・サブネットに所属しない |
2 | VPN/Fastconnect経由で、プライベート・サブネット内のADBに接続 | クライアント側からプライベート・サブネットへの経路を確保しておく |
この検証は、パターン1を例にします。
-
接続を新規作成
Database Type: デフォルトのOracleを指定
Connection Type: Cloud Walletを指定
Configuration File: Walletファイルを指定。事前にOCIコンソールよりダウンロードしてください(やり方は省略)。ダウンロード後、解凍不要でZIPファイルのままでOKです。
Service: 必要に応じて、XXXX_high, XXXX_medium, XXXX_lowの選択肢から指定
2-2. OCI Bastionサービスで接続する
プライベート・サブネットにADBを作成した場合、プライベート・エンドポイントを介してADBにアクセスします。VPNを設定しない場合、OCI Bastion サービスを利用すれば、踏み台サーバを立てず、プライベート・サブネット内のADBに接続できます。設定方法の詳細は、次の記事をご参照ください。
OCI Bastion経由でプライベート・サブネット内のAutonomous DBに接続する
3. MySQLへの接続
3-1. MySQL on OCI Marketplaceに接続する
この例は、パブリック・アクセス経由で、OCI ComputeインスタンスにあるMySQL DBに接続します(MySQL on OCI Marketplace)。
- JDBCドライバーのダウンロード
URL: https://dev.mysql.com/downloads/connector/j/
ダウンロードには、オラクルのアカウントが必要です。
Windows OSの場合、"Platform Independent"を選択します。
ダウンロード後、ZIPファイルを解凍します。
2022/05/04 追記:現時点、上記URLから直接にドライバーをダウンロードできません。インストーラ・ファイルを実施する必要があります。詳細、ここをご参照ください。
- クライアント側のIPを追加
SQL DeveloperのクライアントのIPアドレスを許可しないと接続できませんので、ご注意ください。
現象:Failure - message from server: Host <IP Address> is not allowed to connect to this MySQL server
対応方法:MySQLサーバ側に、以下のコマンドを実施します。(rootユーザの例)
mysql> create user 'root'@'<IP Address>' identified by '<Password>';
mysql> grant all privileges on *.* to 'root'@'<IP Address>';
3-2. Amazon RDS for MySQLに接続する
上記(3-1)の接続方法は、Amazon RDS for MySQLにも適用できます。AWSのセキュリティグループとネットワークACLのインバウンドルールに、アクセス元のIPアドレスを追加し、TCP 3306を許可する必要があります。
接続設定画面:
ホスト名のところに、MySQLのエンドポイントを入力してください。
例:<db_identifier>.xxxxxxxxxxxx.<region-id>.rds.amazonaws.com
3-3. OCI BastionサービスでMySQL Database Serviceに接続する
MySQL Database Serviceに接続したい場合、OCI Bastionサービスを利用することで、踏み台サーバーを立てずに、MySQL DBに接続できます。設定方法の詳細については、次の記事をご参照ください。
OCI Bastion経由でMySQL Database Serviceに接続する
4. MariaDBへの接続
MySQLのJDBCドライバーはMariaDBにも適用できます。
- クライアント側のIPを追加
SQL DeveloperのクライアントのIPアドレスを許可しないと接続できませんので、ご注意ください。
現象:Failure: Access denied for user '<User>'@'<IP Address>'
対応方法:MariaDBサーバ側に、以下のコマンドを実施します。(rootユーザの例)
MariaDB [(none)]> create user 'root'@'<IP Address>' identified by '<Password>';
MariaDB [(none)]> grant all privileges on *.* to 'root'@'<IP Address>';
MariaDB [(none)]> select host,user from mysql.user;
5. PostgreSQLへの接続
-
JDBCドライバーのダウンロード
URL:https://jdbc.postgresql.org/download.html
-
JDBCドライバーの追加
MENU -> Tools -> Preferences -> Database -> Third Party JDBC Drivers -> Add Entry
-
クライアント側のIPを追加
SQL DeveloperのクライアントのIPアドレスを許可しないと接続できませんので、ご注意ください。
現象:Failure -Test failed: FATAL: no pg_hba.conf entry for host "<IP Address>", user "<Username>", database "<DB Name>"
対応方法:下記ファイルを開き、エントリーを追加します。
C:\Program Files\PostgreSQL\13\data\pg_hba.conf
6. IBM DB2への接続
-
JDBCドライバーのダウンロード
URL:https://www.ibm.com/support/pages/db2-jdbc-driver-versions-and-downloads
ダウンロード時にIBMidが必要ですので、事前にご用意ください。
DB2のバージョンに応じて、適切なドライバーを選択してください。
(※この例は、db2jcc4.jarを使います。)
ダウンロード後、ZIPファイルを解凍します。
-
JDBCドライバーの追加
MENU -> Tools -> Preferences -> Database -> Third Party JDBC Drivers -> Add Entry
以前のバージョン(11.5.5まで)では、デフォルトポートは50000でしたが、11.5.6からはデフォルトポートが25000となります。
7. MS SQL Serverへの接続
-
JDBCドライバーのダウンロード
URL: https://www.oracle.com/database/technologies/appdev/sqldev/thirdparty.html
上記オフィシャルサイトに記載されているドライバーのバージョンは、やや古いです。最新バージョンを求めるなら、以下よりダウンロードしてください。
URL: https://sourceforge.net/projects/jtds/files/
ZIPファイルを解凍します。
-
JDBCドライバーの追加
MENU -> Tools -> Preferences -> Database -> Third Party JDBC Drivers -> Add Entry
-
接続を新規作成
Database Type: SQLServerを指定
接続エラーがあった場合、以下のドキュメントをご参照ください。
https://docs.microsoft.com/en-us/troubleshoot/sql/connect/resolving-connectivity-errors
付録
A-1. GUI言語設定の変更
デフォルトでは、SQL Developerの表示言語はOSの言語と同じです。必要に応じて言語を変更できます。例えば、UIを日本語に切り替えたい場合、以下の方法で言語設定を変更できます。
編集対象ファイル:C:\sqldeveloper\ide\bin\ide.conf
編集方法:ファイルの最後に次の行を追加してから、SQLDeveloperを再起動します。
日本語表示の場合:AddVMOption -Duser.language=ja
英語表示の場合:AddVMOption -Duser.language=en
A-2. GUIフォントサイズの変更
編集対象ファイル:
パス:C:\Users\<username>\AppData\Roaming\SQL Developer\system20.4.1.407.0006\o.sqldeveloper\
バージョンにより、system20.4.1.XXXXX
の表示が異なります。
ファイル名:ide.properties
利用中の言語に応じて、以下の行を編集してください。編集後、SQL Developerを再起動してください。
改訂歴
2021年3月:初版作成
2021年7月:「言語設定の変更、フォントサイズの変更」を追加
2022年4月:「Oracle DB (Bastion経由)への接続」を追加
2022年4月:「Autonomous DB (Bastion経由)への接続」を追加
2022年5月:「MySQL Database Service (Bastion経由)への接続」を追加
2024年6月:DB2の新ポート番号を追記
2024年7月:「Amazon RDS for MySQL」のケースを追加
関連記事
オラクル・クラウドの個人ブログ一覧
Oracle LinuxでSQL Developerを利用する方法
OCI データベース・ツールでオラクルDBへの接続方法
Oracle Base DBのサービス名を取得する
OCI Cloud Shell上のSQL PlusからADBに接続する
OCI MarketplaceからMySQLインスタンスを作成する手順
公式ドキュメント
Oracle SQL Developer