奇怪的问题。
我正在运行 CentOS 5 服务器,但无法让 MySQL 允许远程连接和本地连接。IP 表已正确设置,允许我需要连接到 MySQL 的一台远程服务器这样做。
skip-networking 被注释掉了,而且我没有绑定地址。
答案1
首先,运行如下命令来查看现在有什么:
[root@cacti ~]# netstat -lnpt | grep `cat /var/run/mysqld/mysqld.pid `
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 2814/mysqld
如果你没有看到这样的行,请通过运行以下命令检查传递给二进制文件的命令行选项
[root@cacti ~]# ps auxfwww | grep mysql
root 12754 0.0 0.0 61200 728 pts/1 S+ 10:46 0:00 | \_ grep mysql
root 2767 0.0 0.0 65976 1064 ? S Jul12 0:00 /bin/sh /usr/bin/mysqld_safe --datadir=/var/lib/mysql --socket=/var/lib/mysql/mysql.sock --log-error=/var/log/mysqld.log --pid-file=/var/run/mysqld/mysqld.pid --user=mysql
mysql 2814 2.1 0.8 348652 16848 ? Sl Jul12 464:20 \_ /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysql --pid-file=/var/run/mysqld/mysqld.pid --skip-external-locking --socket=/var/lib/mysql/mysql.sock
最后,向我们展示 my.cnf 中的网络选项。默认情况下,除非您告诉它不要绑定,否则 mysql 将在启动时绑定到 tcp 3306。如果您在 [mysqld] 部分中看到任何与网络相关的内容,您可以尝试将其注释掉。
另外,检查日志可能也会有所帮助。日志不是很清楚,但它会告诉你它是否以及何时在启动时绑定到端口,就像这样
[root@cacti ~]# grep port /var/log/mysqld.log
Version: '5.0.45' socket: '/var/lib/mysql/mysql.sock' port: 3306 Source distribution
答案2
好的!谢谢大家的帮助。查看你们的评论让我仔细检查了所有内容。结果发现我在 iptables 中的规则不在正确的位置。我重新排列了规则,它就起作用了
答案3
SE-Linux 被禁用或者配置正确吗?
答案4
听起来这像是您的防火墙规则,如果您像您所说的那样绑定到可路由接口。提供 iptables -L -n 的输出。