无法连接到远程mysql(使用PuTTY和隧道)

问题描述 投票:0回答:2

我正在尝试在远程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”部分有关,是否有端口转发有问题?

mysql putty remote-server portforwarding
2个回答
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

0
投票

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

除非您的Windows IP是公共的并且可以从Debian访问,并且您已经在Windows中正确安装了MySQL客户端,否则您仍然有一些不太复杂的选项而不是隧道。

只需启动ssh并输入sudo mysql,你应该没问题,但是,根据你的ssh用户和mysql用户 - 以及他的权限 - 你需要调整-u-p参数。

你运行mysql_secure_installation命令了吗?

© www.soinside.com 2019 - 2024. All rights reserved.