PhpStormでMAMPのMySQLに繋げたい
困った人のお役に立てばと思い、めっちゃ簡単ですがメモしておきます。
MAMP PROのバージョンは6.9。環境はmac
macでMAMP利用しています。
こんな画面のバーチャルホストが簡単にできるMAMP6.9です。
エラー発生:Case sensitivity: plain=mixed, delimited=exact Connection refused.
下記のエラーで全然接続できません。
DBMS: MySQL (ver. 5.7.39)
Case sensitivity: plain=mixed, delimited=exact
Connection refused.
原因:MySQLのポートが閉じている
おそらく仮想ホストにしているせいだと思うのですが。
下記でポート番号を変えても、全然うまくいきませんでした。
ちゃんとポートをリッスンしているのか?と調べてみても、していません。
(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」を選びます。
ただ下記エラーが発生しました。
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のパラメーターを追加
上記でうまくいきました!
補足
SocketでもCase sensitivityエラーが出たことから、ひょっとするとPort接続の時もSSL経由をやめて接続するなどの設定次第でうまくいった可能性がありますが、Socketで接続できたので、そこまで検証していません。
もしこのあたりご存知の方はコメント頂けると嬉しいです。