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

时间:2009-11-04 12:37:47

标签: mysql mysql-error-2003

我使用以下命令:

mysql -u root -h 127.0.0.1 -p

,错误信息为:

ERROR 2003 (HY000): Can't connect to MySQL server on '127.0.0.1' (111)

谁能帮我解决?

16 个答案:

答案 0 :(得分:211)

如果您使用ubuntu,则必须使用以下步骤来避免此错误(如果未启用复制):

  1. 运行命令vim /etc/mysql/my.cnf
  2. 使用#符号
  3. 发表评论bind-address = 127.0.0.1
  4. 重启你的mysql服务器一次。
  5. <强>更新

    在第1步中,如果在bind-address文件中找不到my.cnf,请在/etc/mysql/mysql.conf.d/mysqld.cnf文件中查找。

    启用MySQL复制时更新

    尝试在{mywordf IP localhost或127.0.0.1`上绑定MySQL服务器的instead of上的MySQL服务器。

答案 1 :(得分:13)

尝试localhost代替127.0.0.1连接或connection-config。在Debian Squeeze Server上为我工作

答案 2 :(得分:6)

在我的情况下(远程连接)帮助关闭了服务器上的防火墙。

service iptables stop

答案 3 :(得分:6)

由于您的MySQL服务器未安装并正在运行,因此可能会出现此问题。 要执行此操作,请以管理员身份启动命令提示符并输入命令:

"C:\Program Files (x86)\MySQL\MySQL Server 5.1\bin\mysqld" --install

如果您获得“服务成功安装”消息,则需要启动MySQL服务。为此:转到“服务”窗口 (任务管理器 - &gt;服务 - &gt;打开服务) 搜索MySQL并从顶部导航栏启动它。 然后,如果尝试打开mysql.exe它将工作。

答案 4 :(得分:6)

当您在连接数据库之前忘记启动数据库时会发生这种情况:

mysql.server start

然后

mysql -u root -p -h 127.0.0.1

答案 5 :(得分:5)

查看my.cnf文件,如果包含[client]部分,port不是真正的侦听端口(默认3306),则必须使用显式参数{连接服务器{1}},例如

  

mysql -u root -h 127.0.0.1 -p -P 3306

答案 6 :(得分:0)

您需要在mysql配置文件(my.ini或my.cnf)中将bind-address参数更改为127.0.0.1,或使用在那里定义的参数。

如果这不起作用,则应检查mysql服务是否实际正在运行。

答案 7 :(得分:0)

如果您在非默认端口上运行,可以尝试使用--port=<port num> 提供--skip-networkingnot enabled.

答案 8 :(得分:0)

我也面临同样的问题。 以下帮助我解决了这个问题 转到控制面板 - &gt;管理工具 - &gt;这里的服务你肯定会看到MySQL服务:右键单击并说开始(强制启动)。

答案 9 :(得分:0)

我刚遇到这个问题....在reading this

之后在Win7和wamp服务器中运行

发现防病毒防火墙导致了这个问题。

答案 10 :(得分:0)

对于Docker用户 -当尝试使用mysql -u root -h 127.0.0.1 -p连接本地sql并且您的数据库在 Docker 容器上运行时,确保mysql服务已启动并正在运行(使用docker ps进行验证,并且还要检查您是否位于正确的端口中),如果容器已关闭,则会出现连接错误。

最佳做法是在计算机上的/etc/hosts中设置IP:

127.0.0.1 db.local

并通过mysql -u root -h db.local -p

运行

答案 11 :(得分:0)

尝试不要关闭iptables并打开端口3306。

sudo iptables -A INPUT -i eth0 -p tcp -m tcp --dport 3306 -j ACCEPT

sudo ufw allow 3306(如果您使用ufw。)

检查:netstat -lnp | grep mysql,您应该得到类似的信息:

cp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN      2048/mysqld         
tcp6       0      0 :::33060                :::*                    LISTEN      2048/mysqld         
unix  2      [ ACC ]     STREAM     LISTENING     514961   2048/mysqld          /var/run/mysqld/mysqld.sock
unix  2      [ ACC ]     STREAM     LISTENING     514987   2048/mysqld          /var/run/mysqld/mysqlx.sock

如果您为null,请在cnf文件中的port = 3306之前删除#。

答案 12 :(得分:0)

如果您已尝试上述所有方法,但仍无法正常工作。检查防火墙。

我试图从Windows计算机连接到使用CentOs7安装在VirtualBox计算机上的MySql Server 5.7.32。我已经尝试了所有方法,但即使无法对无法连接MySql Server的计算机执行ping操作,也无法正常工作。

在CentOs7上,检查防火墙的命令是:

第1步:检查防火墙服务的状态:

systemctl status firewallid.service

第2步:禁用防火墙服务

systemctl stop firewallid.service

答案 13 :(得分:-1)

我刚刚重启我的mysql服务器,问题解决了 在windows net中停止MySQL然后net start MySQl ubuntu linux sudo服务启动mysql

答案 14 :(得分:-1)

我在重新安装时更改了安装目录,但它确实有效。

答案 15 :(得分:-2)

请确保您的MySql服务器在本地主机上运行。

在Linux上

要检查MySql服务器是否正在运行:

# app/views/users/_form.html.erb <%= form.label :status %><br /> <%= form.select :status, User.statuses.keys.collect { |status| status },{} %>

要运行MySql服务器:

sudo service mysql status

在Windows上

要检查MySql服务器是否正在运行:

sudo service mysql start

如果MySql不在列表中,则必须启动/运行MySql。

要运行MySql服务器:

C:\Windows\system32>net start

希望这会有所帮助。