Jag*_*gan 6 mysql linux fedora mysql-error-2003
我正在尝试从客户端访问数据库(ip 172.16.0.114).服务器和客户端都运行Linux的Fedora发行版.对于服务器和客户端,需要配置哪些设置以及它们应该设置什么?如何访问特定数据库(此处为"示例")?我试过但是我收到了一个错误:
ERROR 2003(HY000):无法连接到'172.16.1.169'上的MySQL服务器.
该错误消息由客户端(而不是服务器)生成,因为已尝试连接到服务器但无法访问服务器.
有各种可能的原因:
1)检查mysqld是否在服务器上运行:
ps -ef | grep mysqld
Run Code Online (Sandbox Code Playgroud)
应该返回类似的东西:
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 ...
Run Code Online (Sandbox Code Playgroud)
要运行守护程序服务,请运行redhat/fedora/centos:
service mysqld start
Run Code Online (Sandbox Code Playgroud)
或Fedora版本> = 16,它依赖于systemd:
systemctl start mysqld.service
Run Code Online (Sandbox Code Playgroud)
并在系统启动时启用守护程序自动启动:
systemctl enable mysqld.service
Run Code Online (Sandbox Code Playgroud)
2)检查服务器上运行mysqld的端口:
netstat -lnp | grep mysql
Run Code Online (Sandbox Code Playgroud)
应该返回:
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
Run Code Online (Sandbox Code Playgroud)
后者是本地连接的套接字,第一个用于网络的tcp端口(默认为3306).如果端口不是默认端口,则必须在客户端上设置连接端口.如果使用mysql客户端:
mysql dbname -uuser -ppasswd -P<port> ...
Run Code Online (Sandbox Code Playgroud)
3)在不同的网络地址上,检查服务器是否监听您要连接的网络地址:在文件中/etc/my.cnf搜索该行:
bind_address=127.0.0.1
Run Code Online (Sandbox Code Playgroud)
如果地址是127.0.0.1,则只允许本地连接; 如果它是172.16.1.0,则无法从172.16.2.xxx连接
4)检查服务器上是否没有运行防火墙并阻塞与mysql端口的连接(3306是默认端口); 如果它是一个redhat/fedora/centos运行
service iptables status
Run Code Online (Sandbox Code Playgroud)