質問: DriverManager.getConnection("jdbc:mysql://localhost:8888/example", "root", "root"); ``` にあると思うのですが、 ``` DriverManager.getConnection("jdbc:mysql://localhost:8888/DB名", "ユーザー名", "パスワード"); ``` であってますよね? MAMPなのでPWはrootの筈です。 XAMPPだとターミナルで mysqlと入力すればログイン出来ますけど MAMPだと mysql -u root -p で、PW聞かれるのでrootを入力しないとログイン出来ないのは毎日やっているので分かります。 どこがおかしいのでしょうか? DBも存在しています。 ![イメージ説明](https://teratail-v2.storage.googleapis.com/uploads/contributed_images/0734d06aa8b6a7fbba20f4c46b29dd8f.png) 追記 どこかの記事でMAMPのSQLportは8889と書いていたので8889にしたら接続できましたが、MAMPの設定から確かめてみるとありました。 これのことだと思いますが、これは間違った確認方法でこの8889は使ってはいけないのでしょうか? ![イメージ説明](https://teratail-v2.storage.googleapis.com/uploads/contributed_images/ca76861fc4f8369e3ab9075a9721eb5b.png)
回答: ``` DriverManager.getConnection("jdbc:mysql://localhost:8888/DB名", "ユーザー名", "パスワード"); ``` > > あってますよね? > > > あっていればつながりますので、間違っています。 ポート: 8888 ってTomcatなどのポートですよね。MySQL のポートは通常、3306 ですが、環境によります。 :8888 を削除してしまえば良いかと思いますが... ``` public static void main(String] args) { Connection con = null; try { // JDBCドライバのロード - JDBC4.0(JDK1.6)以降は不要 Class.forName("com.mysql.jdbc.Driver").newInstance(); // MySQLに接続 con = DriverManager.getConnection("jdbc:mysql://localhost/sample", "root", "password"); // System.out.println("MySQLに接続できました。"); } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | SQLException e) { System.out.println(e); // 例外の内容をそのまま表示すれば原因は特定できます。 } finally { if (con != null) { try { con.close(); } catch (SQLException e) { System.out.println("MySQLのクローズに失敗しました。"); } } } } ``` ![イメージ説明