我使用以下命令:
mysql -u root -h 127.0.0.1 -p
,错误信息为:
ERROR 2003 (HY000): Can't connect to MySQL server on '127.0.0.1' (111)
谁能帮我解决?
答案 0 :(得分:211)
如果您使用ubuntu
,则必须使用以下步骤来避免此错误(如果未启用复制):
vim /etc/mysql/my.cnf
bind-address = 127.0.0.1
<强>更新强>
在第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-networking
为not 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
希望这会有所帮助。