我希望通过ssh隧道连接到远程MySQL,并使用具有“localhost”访问权限的用户。
我使用以下命令创建隧道:
ssh -f -N -L 33306:localhost:3306 user@remote-host
同时,这可以连接到主机:
mysql -h 127.0.0.1 -P 33306 -uuser -ppassword
The error i get is:
ERROR 1045 (28000): Access denied for user 'user'@'remote-host' (using password: YES)
问题在于用户'user'@'remote-host'(或'user'@'%')不存在,只有'user'@'localhost'存在。
是否有一种方法可以强制远程主机,在不进行服务器端修改的情况下,让其认为我来自localhost?这是我通过ssh隧道进行连接的唯一原因。
注意:
如果我想使用此命令进行连接:
mysql -h localhost -P 33306 -uuser -ppassword
我得到了这个错误:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
附加数据:
在远程服务器的/etc/hosts中,值如下:
127.0.0.1 localhost
remote-ip remote-host
user@127.0.0.1
的流量。在建立隧道后,您能否通过telnet打开本地端口?telnet localhost 33306
您应该会看到类似于<junk>q>~mysql_native_password
的东西。 - Michael Berkowski