本地主机上有2个不同的mysql服务器

我试图构build应用程序,它使用2个MySQL服务器。 我设置了端口转发(这就是callit的名字 – 我不知道):

sudo ssh -g -L3306:foreignserver.ip:3306 [email protected] 

我把我自己的my.cnf端口改成了3360

 sudo service mysql restart 

当我尝试连接到外部服务器 – 我失败了。

 mysql --host=localhost --port=3306 --user=userinforeignsystem --password=pwdthere 

给我错误

 ERROR 1045 (28000): Access denied for user 'userinforeignsystem'@'localhost' (using password: YES) 

因为我无法从外部连接到其他服务器的mysql数据库,ssh / port forwarding只是为我开发的一种方式。 数据库用户权限和用户名/密码被双重检查并正确。 我可以login,使用这些凭据,在其他服务器就好了。

艾伦。

编辑:如果我交换我自己的用户名和密码的用户名和密码,并离开端口3306,它以某种方式连接到我自己的电脑MySQL的 – 我可以select数据库,看到我自己的MySQL数据库不foreignserver.ip东西的表。 它看起来像是不支付端口或端口转发或什么是错的…

EDIT2:

一些谷歌search后,我发现了命令

 sudo netstat -plntu 

并用它。 当我删除不包括港口3360和3306只有那些2剩下的行:

 tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 8145/mysqld tcp6 0 0 :::3306 :::* LISTEN 8080/ssh 

这是否意味着,由于某种原因,我的MySQL不运行在3360尽pipemy.cnf?

编辑3:本地主机/ phpmyadminvariables也显示端口3306在使用中..猜这就是问题所在…

编辑4:同一时间mysqladminvariables命令显示端口beeing 3360.现在我没有想法。

编辑5:doublechecked my.cnf,发现其他地方的端口设置:

 Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:3360 0.0.0.0:* LISTEN - tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN - tcp6 0 0 :::3306 :::* LISTEN - 

现在phpmyadmin显示使用的端口3360 beeing。 从shell的mysql命令仍然无法连接。

编辑6 – 解决。 因为某些原因

 mysql --host=localhost --port=3306 --user=userinforeignsystem --password=pwdthere 

没有工作,而

 mysql --host=127.0.0.1 --port=3306 --user=userinforeignsystem --password=pwdthere 

工作。 如果有人可以向我解释,那么你会教我一些有趣的和新的:)

看起来你正在做的一切正常,除了你试图使用的用户没有权限从本地连接。

SSH隧道将使用端点屏蔽您的IP,在这种情况下,它是本地主机,您有几种方法来解决这个问题。

  • 尝试结束隧道对另一台服务器是在同一个networking,然后你会显示为从该服务器连接

    sudo ssh -g -L3306:foreignserver.ip:3306 [email protected]

  • 向localhost用户添加权限,为'%'添加权限永远不会为localhost授予权限

让我知道事情的后续!