AWS-EC2 Ubuntuインスタンス上でxamppサーバを実行していて、そこに「androiddb」というデータベースがあります。私は、ナビゲータhttp://public_ip/phpmyadminに書き込み、 "root"ユーザとパスワードなしで入力することでデータベースにアクセスできます。別の側面でJavaアプリケーションからmysqlデータベース(AWSインスタンス上で実行中)にアクセスできません
私はそのデータベースに接続する必要があるJavaアプリケーションを持っている、と私はそれを行うには自分のコードに次の行を持っている:私は自分のアプリケーションを実行すると
con = DriverManager.getConnection("jdbc:mysql://public_ip/androiddb",
"root", "");
、私は次の取得エラー:
Error: Communications link failure due to underlying exception:
** BEGIN NESTED EXCEPTION **
java.net.SocketException
MESSAGE: java.net.ConnectException: Connection refused
STACKTRACE:
java.net.SocketException: java.net.ConnectException: Connection refused
at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:156)
at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:284)
at com.mysql.jdbc.Connection.createNewIO(Connection.java:2569)
at com.mysql.jdbc.Connection.<init>(Connection.java:1485)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:266)
at java.sql.DriverManager.getConnection(DriverManager.java:571)
at java.sql.DriverManager.getConnection(DriverManager.java:215)
at Presentacion.Presentacion$2.mouseClicked(Presentacion.java:125)
at java.awt.Component.processMouseEvent(Component.java:6519)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
at java.awt.Component.processEvent(Component.java:6281)
at java.awt.Container.processEvent(Container.java:2229)
at java.awt.Component.dispatchEventImpl(Component.java:4872)
at java.awt.Container.dispatchEventImpl(Container.java:2287)
at java.awt.Component.dispatchEvent(Component.java:4698)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4501)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
at java.awt.Container.dispatchEventImpl(Container.java:2273)
at java.awt.Window.dispatchEventImpl(Window.java:2719)
at java.awt.Component.dispatchEvent(Component.java:4698)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:747)
at java.awt.EventQueue.access$300(EventQueue.java:103)
at java.awt.EventQueue$3.run(EventQueue.java:706)
at java.awt.EventQueue$3.run(EventQueue.java:704)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
at java.awt.EventQueue$4.run(EventQueue.java:720)
at java.awt.EventQueue$4.run(EventQueue.java:718)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:717)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
** END NESTED EXCEPTION **
Last packet sent to the server was 19 ms ago.
はまた、私は、MySQLが動作していたポートのために見て、私は、コードを使用:
SHOW VARIABLES
WHERE Variable_name IN (
'hostname',
'port')
を
私は、SQLセクションにphpmyadminの中にコードのこの部分を書き、私は次のような出力が得られます。私は、ポート0が何を意味するのか分からない
Variable_name Value
hostname ip-172-31-23-224
port 0
、それは3306(デフォルトのMySQLポート)でなければなりません。 ..
とにかく、私がxamppの設定に間違っているのか、それともAWSの問題なのか、それ以外のことはわかりません。
誰かが私にこれを手伝ってもらえますか?どうもありがとうございました。
私はSSHでマシンにアクセスできます。私のセキュリティグループでは、任意のIPアドレスからHTTP、SSH、MySQL/Aurora、ICMPポートを開いています。あなたはmysqlが実行されているポートを確認する方法を知っていますか?私は私の質問でそのコードを試しましたが、私はポート0を持っています。あなたの答えをありがとう! – Cayetano
'netstat -tlnp'を実行すると、それが聞いているポートを確認できます。またはnmapをインストールしてnmap localhostを使用することができます –
21,22,80,443のポートしか見ることができないので、mysqlがリッスンしていないようです。私はmysqlを再起動しましたが、ポートは表示されません。 – Cayetano