mysql 无法设置远程访问

mysql 无法设置远程访问

尝试设置 mysql 以便从任何主机进行访问。

> 显示“root”@“%”的授权;

授予 'root'@'%' 的所有权限(带授予选项)

我的cnf

[root@p419386 etc]# cat my.cnf
#
# This group is read both both by the client and the server
# use it for options that affect everything
#
[client-server]

#
# include all files from the config directory
#
!includedir /etc/my.cnf.d

/etc/my.cnf.d 中的文件:client.cnf enable_encryption.preset mysql-clients.cnf server.cnf tokudb.cnf None 包含skip-networking

服务器配置文件

bind-address=0.0.0.0

我使用 CentOS 7 uname -a

Linux p419386 2.6.32-042stab120.16 #1 SMP Tue Dec 13 20:58:28 MSK 2016 x86_64 x86_64 x86_64 GNU/Linux

MySQL 服务器是10.1.21-MariaDB MariaDB Server

仍然无法从远程主机连接:(

问题肯定不在网络或防火墙上。

以上设置正确吗?怎么了?

毕竟问题已经找到在 iptables 规则中。因此 MySQL 配置正确!

答案1

如果我们查看您的配置(就您明确发布并告诉我们其中的内容而言),它看起来应该可以工作。至少官方 MariaDB 知识库表明了这一点。

因此,您可能缺少这些配置文件中的某些内容,或者您​​遇到了其他问题。虽然您确实说过问题与网络或防火墙无关,但您的最新错误ERROR 2003 (HY000): Can't connect to MySQL server on '<host>' (113)表明这仍然可能是个问题。

您可以尝试使用 mysql 命令连接到服务器上的本地 IP (127.0.0.1)。查看我链接的问题,您将使用:

mysql -h 127.0.0.1 -u root -p

如果您能够使用该命令建立连接,您就会知道您的 MariaDB 已启动并正在运行并且接受基于 IP 的连接。

现在可能发生的情况是,它没有绑定到外部 IP 地址(也许尝试仅为其设置外部 IP bind-host)或者您的防火墙(客户端或服务器)或其他网络组件可能会干扰并阻止连接。

要检查服务器绑定的内容,您可以运行(以 root 身份或使用 sudo):

netstat -l -n -p

你会看到如下结果:

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
...
tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN      1234/mysqld
...

如您所见,在这种情况下,MySQL 服务器正在运行指向端口 3306 上的本地主机地址。

相关内容