无法连接到远程mysql(具有PuTTY和隧道)

时间:2018-07-20 21:12:47

标签: mysql putty remote-server portforwarding

我正在尝试在远程Debian服务器上使用mysql。我已经使用隧道配置了PuTTy客户端:

  • Session中,主机名是远程IP地址,端口是22
  • SSH/Tunnels中,我具有源端口3306和目标:127.0.0.1:3306

我单击“打开”,键入用户名和密码以登录到服务器。

但是在这一点上我不能使用mysql。如果我没有密码就尝试:

mysql -u root -p

我得到access denied for user 'root'@localhost' (using password: NO)

我不确定这是否是因为确实需要密码或端口转发有问题-我怎么知道?

我尝试进入my.cnf文件并将bind address 127.0.0.1更改为远程地址,但是没有任何变化。也许为此需要重新启动mysql,但是尝试重新启动它时访问被拒绝(相同的mysql错误消息)。

我在puTTY事件日志中看到它显示为"local port 3306 forwarding to 127.0.0.1:3306"。再往下一点说,"Opening connection to 127.0.0.1:3306 for forwarding from 127.0.0.1:55271"-我不知道那是什么?

我怎么知道问题是密码还是“ @localhost”部分,端口转发有问题吗?

2 个答案:

答案 0 :(得分:0)

您已经忘记了root密码,或者从未设置过密码。无论哪种方式,您都需要设置/重置它。

如果您有权访问ssh(您的帖子建议您这样做),并且您有sudo访问权限。发出以下命令:

停止您的MySQl流程..大多数Debian系统将是

sudo service mysql stop

然后在没有密码的情况下安全地启动MySQL:

sudo mysqld_safe --skip-grant-tables &

然后以root

身份登录
mysql -u root

设置root的密码

use mysql;
update user set password=PASSWORD("PASSWORD") where User='root';
flush privileges;
quit

然后重新启动mysql

sudo service mysql restart

这时,发出命令时,系统会提示您输入密码:

mysql -u root -p

答案 1 :(得分:0)

听起来像不需要隧道。 默认情况下,mysql install将允许从本地主机访问而无需密码。 ssh会话是远程的,但是mysql会话是本地的,因此您不需要更改绑定地址。

除非您的Windows IP是公开的,并且可以从Debian进行访问,并且您已经在Windows中正确安装了MySQL客户端,否则您还有比隧道更简单的选择。

只需启动ssh并输入sudo mysql,就可以了,但是,根据您的ssh用户和mysql用户以及他的权限,您需要调整-u和{{1} }参数。

您是否运行过-p命令?