连接到mysql服务器的问题:ERROR 2003(HY000)

时间:2011-03-07 10:50:12

标签: mysql linux fedora mysql-error-2003

  • 服务器IP:172.16.1.169
  • mysql用户名:root
  • passwd:xxxxxxxxxx
  • 数据库名称:示例

我正在尝试从客户端访问数据库(ip 172.16.0.114)。服务器和客户端都运行Linux的Fedora发行版。对于服务器和客户端,需要配置哪些设置以及它们应该设置什么?如何访问特定数据库(此处为“示例”)?我试过但是我收到了一个错误:

  

ERROR 2003(HY000):无法连接到'172.16.1.169'上的MySQL服务器。

4 个答案:

答案 0 :(得分:9)

该错误消息由客户端(而非服务器)生成,因为已尝试连接到服务器但无法访问服务器。

有各种可能的原因:

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

答案 1 :(得分:1)

  1. 打开MySQL配置文件

    sudo vim my.cnf

  2. 确保注释掉以下内容。

    #跳过外部锁定

    #跳过联网

    #bind-address = xx.xx.xx.xx

    保存并退出

  3. 重启mysql服务

答案 2 :(得分:0)

我认为目标mysql服务器可能使用不同的端口。 你必须先找到正确的端口。

获得正确的端口后,您可以使用以下命令连接到该mysql服务器:

mysql -h 172.16.1.169 -P (port) -u root -p (password)

答案 3 :(得分:-1)

在MySQL配置文件(/etc/mysql/my.cnf)中评论&#39; #bind-address = 127.0.0.1&#39;

保存并重启mysql服务。