通过 PhpStorm 进行 SSH 隧道 MySQL 连接和套接字连接

sut*_*her 3 mysql sockets jetbrains-ide ssh-tunnel phpstorm

默认情况下,PhpStorm 的数据库管理器运行良好。但目前在一个特殊的提供商(1u1.de)上,我在完成这项工作时遇到了一些麻烦。

我可以通过 SSH 连接到提供商。如果我想连接到 MySQL 数据库,我必须使用:

mysql --host=localhost --user=dbo123123123 -S /tmp/mysql5.sock --password='123123123';
Run Code Online (Sandbox Code Playgroud)

通过服务器上的 CLI 可以很好地工作,但我没有找到通过 PhpStorm 连接到该数据库的方法。

对我来说,“套接字连接”似乎可能是问题所在。有人知道如何让它发挥作用吗?


解决方案的一部分(?!):

也许是解决方案的第一部分,我发现您可以通过这种方式将套接字作为自己的套接字转发到本地电脑:

ssh -nNT -L $(pwd)/yourLocal.sock:/var/run/mysqlREMOTEMYSQL.sock user@somehost

信息来源

这表明套接字已建立:

netstat -ln | grep mysql unix 2 [ ACC ] STREAM LISTENING 3713865 /myFolder/mysql5.sock

但我仍然无法通过以下方式连接到此套接字:

mysql -h localhost --protocol=SOCKET -u'username' -p'mypassword' -S /myFolder/mysql5.sock

得到这个错误:

ERROR 2013 (HY000): Lost connection to MySQL server at 'reading initial communication packet', system error: 95 "Operation not supported"
Run Code Online (Sandbox Code Playgroud)

Zay*_*ige 5

ssh -L /tmp/mysql.sock:/var/run/mysqld/mysqld.sock sshuser@remotehost

进而

mysql -h localhost --protocol=SOCKET -u'username' -p'mypassword' -S /tmp/mysql.sock

似乎对我来说效果很好