teratail header banner
teratail header banner
質問するログイン新規登録
Oracle

Oracleは、米オラクルが取り扱うリレーショナルデータベース管理システムです。メインフレームからPCまで、多様なプラットフォームに対応しています。

Q&A

1回答

393閲覧

Oracle SQL Developer で データベース接続の作成ができない

Seattle51

総合スコア0

Oracle

Oracleは、米オラクルが取り扱うリレーショナルデータベース管理システムです。メインフレームからPCまで、多様なプラットフォームに対応しています。

0グッド

0クリップ

投稿2025/07/08 03:20

0

0

実現したいこと

Oracle SQL Developer を使って、PL/SQLを勉強したい。

発生している問題・分からないこと

Oracle SQL Developer で データベース接続の作成をしようとすると、「ステータス:失敗 ーテストが失敗しました:ORA-12541:接続できません。host localhost port 1521にリスナーがありません。」とエラーメッセージが出て、データベースに接続できません。リスナーが起動しているのは、確認しています。

エラーメッセージ

error

1ステータス:失敗 ーテストが失敗しました:ORA-12541:接続できません。host localhost port 1521にリスナーがありま 2せん。 (CONNECTION_ID=AmqcRO...) ※すみません。エラーメッセージの最後の部分が、枠外に出て、読み取れません。

該当のソースコード

特になし

試したこと・調べたこと

  • teratailやGoogle等で検索した
  • ソースコードを自分なりに変更した
  • 知人に聞いた
  • その他
上記の詳細・結果

インターネットでエラーを入力して対処方法を見て、FWのポートが開いているか調べようとしたのですが、よくわからず、未実施です。
また、localhostに接続するためには、プライベートネットワークに接続しないといけないのかと思い、プライベートのFWを解除しましたが、接続できませんでした。

補足

FWに接続を許可するアプリケーションを設定しようとして、コントロールパネルから、Defenderを操作しようとしましたが、追加方法がわかりませんでした。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kikukiku

2025/07/08 05:37 編集

ORACLEはどこにありますか? ORACLEが稼働しているPCのOSは何ですか? ORACLEにアクセスするPCのOSはWindowsですか? FWにて1521ポートを開ける場合には、ORACLEが稼働しているPC側を開ける必要があります。
Seattle51

2025/07/09 00:31

ORACLEのインストール先は、 C:\app\****(アカウント名)\product\21c、 OSは Windows 11 Home (バージョン:24H2、OSビルド:26100.4351) です。
kikukiku

2025/07/09 00:39

ORACLEをインストールしたPC①と、 Oracle SQL DeveloperをインストールしたPC②は、同じPCですか? 同じPCでない場合、PC①とPC②は、ネットワーク的にどこに存在していますか? 例えば、 ・同じHUBにLANケーブルで接続されている。 ・PC①は、社内のどこかに設置されている。PC②は自分のPC。 ・PC①は、クラウド上にある。PC②は自分のPC。 ・などなど
Seattle51

2025/07/09 00:41

はい、ORACLEをインストールしたPC①とOracle SQL DeveloperをインストールしたPC②は、同じPCです。
KOZ6.0

2025/07/09 00:48

「Windows Server 2019 でオラクルデータベース 19c(19.3.0.0.0)のファイアウォール設定」 http://aqurex.jp/windows-server-2019-%E3%81%A7%E3%82%AA%E3%83%A9%E3%82%AF%E3%83%AB%E3%83%87%E3%83%BC%E3%82%BF%E3%83%99%E3%83%BC%E3%82%B9-19c%EF%BC%8819-3-0-0-0%EF%BC%89%E3%81%AE%E3%83%95%E3%82%A1%E3%82%A4%E3%82%A2/ Defender 以外にセキュリティソフトをインストールしているなら、そちらの設定も必要です。
kikukiku

2025/07/09 01:22

同一PCなら、Windows版のORACLEをインストールしたんですね。 だったら、ファイヤーウォールは関係なさそうに思うけど、関係あるのかな? 同時にsqlplusもインストールされていると思うので、 まずは下記コマンドで、接続できるかを確認してください。 sqlplus username/userpass@lisnername エラーが発生したら、エラー内容が知りたいです。
Seattle51

2025/07/09 01:29

Defenderの「ファイアウォール設定」でオラクルDBが受信する「ポート:1521」を許可しましたが、やはり、同様のエラーが出ます。Defende以外にセキュリティソフトをインストールしていません。 ちょっと気になったのですが、参照した手順のページのプライベート ネットワーク(R)は「接続済み」になっていましたが、私のPCは、ゲストまたはパブリックのネットワーク(p)のみ「接続済み」となっており、プライベート ネットワーク(R)は「接続されていません」になっています。問題はないのでしょうか。
kikukiku

2025/07/09 01:41

>プライベートネットワークは「接続されていません」になっています。問題はないのでしょうか。 今回は同一PC内の話なので、問題にはならないと思います。
Seattle51

2025/07/09 01:47

コマンド sqlplus username/userpass@lisnernameで、接続できるかを確認してみたところ、下記の エラーが表示されました。ただ、その後にユーザ名を尋ねられましたので、sqlplusは接続されているようです。 ERROR: ORA-12154: TNS: 指定された接続識別子を解決できませんでした ユーザー名を入力してください:
kikukiku

2025/07/09 01:49

下記の部分は設定されている名前に置き換えていますか? username userpass lisnername
kikukiku

2025/07/09 01:55

下記に、tnsnames.oraファイルがあると思うのですが、 そのファイル内に、リスナーの設定を加える必要があるのですが、 その設定はされていますか? [ORACLEホーム]\network\admin\tnsnames.ora 下記のように設定する必要がります。 ORCLPDB●リスナー名● = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orclpdb●インストール時に作成したプラガブルデータベース名●) ) )
Seattle51

2025/07/09 07:48

回答ありがとうございます。 自己解決しました! 今まで,「ホスト名(A)」のところに、デフォルトの「localhost」を入力していたのですが、 「tnsnames.ora」に記載されている(HOST = 192.168.10.111)に」書き直してテストしたところ、 接続に成功しました。 お手数をおかけしました。ありがとうございます!
dodox86

2025/07/10 03:23

一応解決されてしまったようですが、より本質的(?)にリスナー側の設定ファイル「listener.ora」で指定されているHOSTが"192.168.10.111"だから、tnsnames.oraとリスナーの不一致で接続エラーになっていたのではないでしょうか。ネットワーク環境にもよりますが最近の設定だとlocalhostだとIPv6で解決しようとする時もありますし。
Seattle51

2025/07/10 06:04

ご指摘ありがとうございます。 留意しておきます。 最後までご説明ありがとうございました。
guest

回答1

0

下記の手順を試してください。
全部OKになれば、その内容でSQL Developerに設定すれば
接続できるはずです。

・ORACLEインストール時に下記を設定したとする。
グローバルデータベース名:orcl
パスワード:orclpass
プラガブルデータベース名:orclpdb
・下記を実行。これはログインできるはず。
管理者権限powershellを起動
sqlplus / as sysdba
・下記を実行。これはログインできるはず。
管理者権限powershellを起動
sqlplus oracl/oraclpass as sysdba
・今いる場所を確認
管理者権限powershellを起動
sqlplus / as sysdba
show con_name
CDB$ROOT <==今いる場所。CDBにいる。
・PDBに移動する。
alter session set container = orclpdb;
・今いる場所を確認
show con_name
ORCLPDB <==今いる場所。ORCLPDBにいる。
・ORCLPDBにユーザを作成する
create user user1 identified by user1;
・ユーザに権限を与える
データベースに接続できる権限
grant create session to user1;
オブジェクトを作成できる権限
grant resource to user1;
表領域を無制限に使用できる権限
grant unlimited tablespace to user1;
・PDBにローカルユーザへ接続を試す。
sqlplus user1/user1@orclpdb
上記はエラーになる。
PDBに接続するには「リモート接続」でしか接続できないためである。
・下記に存在するリスナーファイルを編集
[ORACLEホーム]\network\admin\tnsnames.ora
下記を追加
ORCLPDB =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost●サーバのIPアドレスを設定する必要あり●)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orclpdb)
)
)
・リスナーを起動
管理者権限でpowershellを起動
lsnrctl start
・PDBをOPENする
sqlplus / as sysdba
alter pluggable database orclpdb open;
・PDBにローカルユーザへ接続を試す
sqlplus user1/user1@ORCLPDB

==追記==
・PDB自動起動設定
sqlplus / as sysdbs
alter pluggable database orclpdb open;
alter pluggable database orclpdb save state; <==OPEN中のPDBを自動起動に設定

投稿2025/07/09 02:12

編集2025/07/10 00:01
kikukiku

総合スコア539

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kikukiku

2025/07/10 00:02

tnsnames.ora内のlocalhostは、IPアドレスを設定する必要があることを追記
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.30%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問