Mysql:连接被拒绝错误:111

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mysql:连接被拒绝错误:111相关的知识,希望对你有一定的参考价值。

使用远程IP地址时无法连接到服务器。

Localhost运行正常。

一些信息:

OS:Ubuntu 16.04

数据库:MariaDB

端口3306已打开

用户具有远程(%)访问权限。

我已将50-server.conf中的bind-address更改为bind-address = 0.0.0.0,我尝试将其注释掉。他们都没有工作。还尝试将bind-address = 0.0.0.0放在my.conf中的[mysqld]组标签下。每次更改后,我都重新启动了Mysql,并尝试使用此命令mrsql -u root -h xxx.xxx.xxx.xxx -p连接。它对于localhost正常工作,但是在尝试服务器IP时不起作用。

我该如何解决这个问题?

答案

经过数天的浏览并尝试了stackoverflow中提供的所有解决方案,我终于设法远程建立了与mysql或Mariadb的连接。

这里是从远程计算机访问mysql db的解决方案:

首先,在您的/etc/my.cnf或my.cnf在计算机中的任何位置:

bind-address= THE_HOST_IP_ON_WHICH_MYSQLDB_IS_INSTALLED
# skip-networking ( This will allow TCP/IP connection)

其次,确保/etc/hosts.deny中没有ip(在许多情况下,这可能是连接的根本原因)

> Important:
> 1. restart mysqld = systemctl restart mysqld ( Ubuntu might have diff cmd)
> 2. check status = systemctl status mysqld ( Ubuntu might have diff cmd)
> 3. check port and ip on which mysqld is running = netstat -tlnp  It should be running on THE_HOST_IP_ON_WHICH_MYSQLDB_IS_INSTALLED: 3306  ( Ubuntu might have diff cmd)

第三,创建一个具有所有特权的用户,例如:

> GRANT ALL ON db_name.* TO username@THE_HOST_IP_ON_WHICH_MYSQLDB_IS_INSTALLED IDENTIFIED BY 'password';
> FLUSH PRIVILEGES;

最后,如果使用工作台或任何其他客户端来建立连接。输入值为:

> HOSTNAME= THE_HOST_IP_ON_WHICH_MYSQLDB_IS_INSTALLED 
>username=username

我希望这对我的其他用户有帮助!

以上是关于Mysql:连接被拒绝错误:111的主要内容,如果未能解决你的问题,请参考以下文章

Mariadb docker容器无法使用Python连接到主机上的MySQL服务器(111连接被拒绝)

Python socket.error:[Errno 111] 连接被拒绝

Django电子邮件错误:引发错误socket.error:[Errno 111]连接被拒绝[重复]

nginx:连接到上游时连接()失败(111:连接被拒绝)

Nginx 错误失败(111:连接被拒绝)同时连接到上游,docker-compose nodejs

111:尝试连接到 AWS EC2 实例上的 Flask 应用程序时出现连接被拒绝错误