错误2003(HY000):无法连接到“ 127.0.0.1”上的MySQL服务器(111)


135

我使用以下命令:

mysql -u root -h 127.0.0.1 -p

错误消息是:

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

谁可以帮助我修复它?


3
mysql守护进程正在运行吗?你们有防火墙吗?您可以telnet到mysql的默认端口是306吗
-telnet

mysql守护进程正在运行。我确定。
查理·埃普斯

1
是我还是如果您要连接到本地mysql服务器,则无需指定主机,例如mysql -u root -p应该可以工作吗?
RMcLeod

只是为了确保您正在尝试本地连接到数据库服务器?
约翰·凯恩

我在ubuntu-12.04.2上重新安装了mysql。对于使用readline 6.2的debian-linux-gnu(x86_64),版本为14.14 Distrib 5.5.32,其默认配置不包含“ skip-networking”。因此,您不会遇到此版本的错误。

Answers:


220

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

  1. 运行命令 vim /etc/mysql/my.cnf
  2. bind-address = 127.0.0.1使用#符号注释
  3. 重新启动您的mysql服务器一次。

更新资料

在步骤1,如果你不能找到bind-address的在my.cnf文件中,查找它的/etc/mysql/mysql.conf.d/mysqld.cnf文件。

在启用MySQL复制的情况下进行更新

尝试IP在“ my.cnf instead oflocalhost或127.0.0.1 ”中连接已绑定MySQL服务器的MySQL服务器。


8
谢谢!!!我已经尝试解决了很长时间!我注释掉了这一行,保存了文件,然后运行service mysql restart。现在就可以了!
瑞安

在我的情况下,我将服务器地址而不是127.0.0.1用作绑定地址。如果您是这种情况,则也需要对此进行评论。
Vlad Schnakovszki 2014年

4
有没有bind-address = 127.0.0.1/etc/mysql/my.cnf
RegarBoy

6
@developer,我在这里找到了我的:/etc/mysql/mysql.conf.d/mysqld.cnf
一次

我更改了bind-address = <主服务器ip>,但是无法重新启动mysql。
阿维·凯哈特

14

尝试localhost而不是127.0.0.1连接或在您的计算机中connection-config。在Debian Squeeze服务器上为我工作


仅供参考,如果您指定localhost,则告诉Mysql通过UNIX套接字(在ubuntu上为/var/run/mysqld/mysqld.sock)进行连接,而不是通过TCP套接字进行连接。
2013年

8

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

mysql.server start

然后

mysql -u root -p -h 127.0.0.1

在Mac和Linux的终端上。我相信在Windows CMD中也是如此,但我不确定。
亨利

我必须sudo service mysqld start在MySQL Community Server的AWS EC2实例中使用启动MySQL服务器。
harshainfo

6

就我而言(远程连接)有助于关闭服务器上的防火墙。

service iptables stop

@ram可能您正在使用其他防火墙。或您的问题根本不是防火墙。查看Linux发行版的文档。
Bunyk 2015年

1
@ram tryservice firewalld stop
Maxim Mazurok 2015年

1
MySQL通常在端口3306上运行,因此将其添加到防火墙
kurdtpage '18

6

因为未安装并运行您的MySQL服务器,所以可能会出现此问题。为此,以管理员身份启动命令提示符并输入命令:

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

如果收到“服务已成功安装”消息,则需要启动MySQL服务。为此,请执行以下操作:转到“服务”窗口(任务管理器->服务->打开服务),搜索MySQL并从顶部导航栏中启动它。然后,如果尝试打开mysql.exe,它将起作用。


2
有点错误,cd "C:\Program Files (x86)\MySQL\MySQL Server 5.1\bin" 然后mysqld --install。另外,服务器号取决于下载。
Dejazmach

这样做解决了我的问题
Steffi Keran Rani J

6

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

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


我在哪里可以搜索到my.cnf。它不在我的笔记本电脑中的湿服务器中
Deepak Keynes

在Windows上,通常称其为“ my.ini”
于家澳

对我来说,港口是问题所在。谢谢
Chandra Eskay 18/12/14

0

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

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


1
我已将行“ bind-address = 127.0.0.1”添加到文件my.cnf中。但这是行不通的。
查理·艾普

2
如果此行存在,mysql将仅侦听列出的地址。要启用远程访问,您应该删除此行。请注意这具有的安全隐患。
webkraller 2011年

bind-address =127.0.0.1在my.cnf中添加将禁用与数据库的远程连接。因此,即使它可以工作(不是)-这也不是一个好的解决方案。
alfasin 2012年

除非您不希望其他任何连接,否则bind-address应该为0.0.0.0 。
罗恩侯爵

0

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



0

我也面临着同样的问题。以下内容可以帮助我解决问题,请转到控制面板->管理工具->其中的服务,您肯定会看到MySQL服务:右键单击并说“开始(强制启动)”。


0

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

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

127.0.0.1 db.local

并运行它 mysql -u root -h db.local -p


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之前删除#。


0

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

在Linux上

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

sudo service mysql status

要运行MySql服务器:

sudo service mysql start

在Windows上

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

C:\Windows\system32>net start

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

要运行MySql服务器:

C:\Windows\system32>net start mysql

希望这可以帮助。



-2

我只是重新启动我的MySQL服务器,并在Windows中解决了问题。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.