我想通过ssh隧道与具有"localhost"访问权限的用户连接到远程MySQL.
我用这个做隧道:
ssh -f -N -L 33306:localhost:3306 user@remote-host
Run Code Online (Sandbox Code Playgroud)
这个连接到主机:
mysql -h 127.0.0.1 -P 33306 -uuser -ppassword
Run Code Online (Sandbox Code Playgroud)
我得到的错误是:
ERROR 1045 (28000): Access denied for user 'user'@'remote-host' (using password: YES)
Run Code Online (Sandbox Code Playgroud)
问题是用户"用户"@"远程主机"(或"用户"@"%")不存在,只有"用户"@"localhost"才有.
有没有办法强制远程主机,没有服务器端修改认为我来自localhost?这是我通过ssh隧道进行连接的唯一原因.
注意:
如果我想连接此命令:
mysql -h localhost -P 33306 -uuser -ppassword
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
Run Code Online (Sandbox Code Playgroud)
其他数据:
在/ etc/hosts中的远程服务器上,值如下所示:
127.0.0.1 localhost
remote-ip remote-host
Run Code Online (Sandbox Code Playgroud)