- 服务器 IP:172.16.1.169
- mysql用户名:root
- 密码:xxxxxxxxx
- 数据库名称:示例
我正在尝试从客户端访问数据库(IP 172.16.0.114)。服务器和客户端都运行 Linux 的 Fedora 发行版。对于服务器和客户端来说,需要配置哪些设置以及应该将其设置为什么?如何访问特定数据库(此处为“示例”)?我尝试过,但出现错误:
ERROR 2003 (HY000): Can't connect to MySQL server on '172.16.1.169'.
最佳答案
该错误消息是由客户端(而不是服务器)生成的,因为已尝试连接到服务器但无法访问服务器。
有多种可能的原因:
1) 检查 mysqld 是否在服务器上运行:
ps -ef | grep mysqld
应该返回类似:
root 2435 2342 0 15:49 pts/1 00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/usr/local/var/ --user=mysql
mysql 2480 2435 0 15:49 pts/1 00:00:00 /usr/local/mysql/libexec/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/var/ --user=mysql ...
要运行守护程序服务,请在 redhat/fedora/centos 上运行:
service mysqld start
或者在 Fedora 版本 >= 16 上,它依赖于 systemd:
systemctl start mysqld.service
以及在系统启动时启用守护程序自动启动:
systemctl enable mysqld.service
2)检查服务器上运行mysqld的端口:
netstat -lnp | grep mysql
应该返回:
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 2480/mysqld
unix 2 [ ACC ] STREAM LISTENING 8101 2480/mysqld /tmp/mysql.sock
后者是用于本地连接的套接字,第一个是用于网络的 tcp 端口(默认 3306)。如果端口不是默认端口,则需要在客户端设置连接端口。如果使用mysql客户端:
mysql dbname -uuser -ppasswd -P<port> ...
3) 在不同的网络地址上,检查服务器是否监听您正在连接的网络地址:在文件 /etc/my.cnf
中搜索行:
bind_address=127.0.0.1
如果地址是127.0.0.1,则只允许本地连接;如果是172.16.1.0,则无法从172.16.2.xxx连接
4) 检查服务器上是否没有运行防火墙并阻止连接到 mysql 端口(3306 是默认端口);如果是 redhat/fedora/centos 运行
service iptables status
关于mysql - 连接mysql服务器出现问题: ERROR 2003 (HY000),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53827993/