无法使用 IP 地址连接到 mysql 服务器

无法使用 IP 地址连接到 mysql 服务器

我正在尝试使用 ip 连接到 mysql,但是出现了以下错误:

错误 2003 (HY000):无法连接到‘xxx.xxx.xxx.xxx’上的 MySQL 服务器 (111)

但我可以使用localhost而不是 IP 来连接。

这不起作用:

mysql -u ryan -h xxx.xxx.xxx.xxx -p

但这确实有效:

mysql -u ryan -h localhost -p

我今天早些时候能够连接,然后我安装了 iRedMail,然后我卸载了 iRedMail,并且卸载过程对 mysql 做了一些事情,所以我使用以下命令从头开始重新安装了 mysql:

apt-get purge mysql-server mysql-client mysql-common mysql-client-5.5 mysql-server-5.5

然后:

apt-get install mysql-server

之后我创建了我的用户,现在我无法使用 IP 地址与新用户或 root 用户进行连接,但我可以使用 进行连接localhost

怎么了?

答案1

您的配置示例中的 MySQL 本地绑定到地址 localhost(或明确绑定到 IP 地址 127.0.0.1)。如果您想通过服务器的公共 IP 地址进行连接,访问将被拒绝。

netstat -ln您可以通过使用命令以新样式执行或来查看这一点ss

删除并重新安装替换了 MySQL 的一些配置文件。apt-get purge删除配置文件,包括依赖包的配置文件。通常,MySQL 仅在 Ubuntu 上的新安装上绑定到本地主机,因此这看起来像是您的 MySQL 配置文件已被默认配置文件替换。对于其他发行版,我无法谈论默认配置。

如果您想在本地计算机上使用 MySQL 管理工具(即 HeidiSQL),则不应将bind-addressMySQL 配置中的 IP 地址更改为公共 IP 地址。最好使用 SSH 隧道。

使用标准 Linux 命令,只要知道本地端口在哪里ssh,就可以轻松实现这一点。您也可以使用 MySQL 端口 3306 作为本地端口,但如果您本地安装了 MySQL,则可能行不通。在 Windows 上,也可以使用 putty 来实现这一点,只需在 Google 上搜索“putty mysql tunnel”即可ssh -L 9999:localhost:3306 <servername>9999教程应该可以做到,但是由于我是纯 Linux 用户,所以我无法验证它。

相关内容