0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

PhpStormとMAMPのMySQL接続ではまったのでメモ

Last updated at Posted at 2024-08-13

PhpStormでMAMPのMySQLに繋げたい

困った人のお役に立てばと思い、めっちゃ簡単ですがメモしておきます。

MAMP PROのバージョンは6.9。環境はmac

macでMAMP利用しています。
こんな画面のバーチャルホストが簡単にできるMAMP6.9です。
image.png

エラー発生:Case sensitivity: plain=mixed, delimited=exact Connection refused.

下記のエラーで全然接続できません。

DBMS: MySQL (ver. 5.7.39)
Case sensitivity: plain=mixed, delimited=exact
Connection refused.

原因:MySQLのポートが閉じている

おそらく仮想ホストにしているせいだと思うのですが。
下記でポート番号を変えても、全然うまくいきませんでした。
image.png

ちゃんとポートをリッスンしているのか?と調べてみても、していません。

(base) iMac:~ $ nc -vz localhost 8889
nc: connectx to localhost port 8889 (tcp) failed: Connection refused
nc: connectx to localhost port 8889 (tcp) failed: Connection refused
(base) iMac:~ $ nc -vz localhost 3306
nc: connectx to localhost port 3306 (tcp) failed: Connection refused
nc: connectx to localhost port 3306 (tcp) failed: Connection refused
(base) iMac:~ $ lsof -i :3306
(base) iMac:~ $ lsof -i :8889
(base) iMac:~ $ netstat -an | grep LISTEN | grep 8889
(base) iMac:~ $ netstat -an | grep LISTEN | grep 3306

じゃあ、どうやってMAMPはMySQLに接続しているのか?と調べてみると、Socket接続していたのですよね。

(base) iMac:~ $ netstat -an | grep -i mamp
f3b1bfa5bff21e1f stream      0      0 f3b1bfa0f63a6017                0                0                0 /Applications/MAMP/tmp/mysql/mysql.sock
f3b1bfa5bff21717 stream      0      0 f3b1bfa0f9b36647                0                0                0 /Applications/MAMP/Library/logs/cgisock.18504
f3b1bfa5bff21d57 stream      0      0 f3b1bfa0f7190d7f                0                0                0 /Applications/MAMP/Library/logs/wsgi.18504.2.2.sock
f3b1bfa5bff20907 stream      0      0 f3b1bfa0f71b97d7                0                0                0 /Applications/MAMP/Library/logs/wsgi.18504.2.1.sock

PhpStormをSocket接続にして解決

左下のConnection type:で「Unix Socket」を選びます。
image.png

ただ下記エラーが発生しました。

DBMS: MySQL (ver. 5.7)
Case sensitivity: plain=mixed, delimited=exact
'java.net.Socket com.mysql.cj.protocol.ExportControlled.performTlsHandshake(java.net.Socket, com.mysql.cj.protocol.SocketConnection, com.mysql.cj.ServerVersion)'.

SSLを使うと駄目っぽいので、userSSL=falseのパラメーターを追加
image.png

上記でうまくいきました!

補足

SocketでもCase sensitivityエラーが出たことから、ひょっとするとPort接続の時もSSL経由をやめて接続するなどの設定次第でうまくいった可能性がありますが、Socketで接続できたので、そこまで検証していません。
もしこのあたりご存知の方はコメント頂けると嬉しいです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?