如何解决远程连接mysql出现Can’t connect to MySQL server on (111 “Connection refused”)的问题

转自:
https://www.jianshu.com/p/24bd98112d80
https://www.cnblogs.com/myblog1993/p/10560679.html

1 开放MySQL的远程连接

通过root用户登录MySQL:

# mysql -u root -p

执行赋权的命令:

MySQL> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'IDENTIFIED BY 'password' WITH GRANT OPTION;

MySQL> flush privileges;

password为MySQL的root用户对应的密码。

重启MySQL:

方式一:
# /etc/init.d/mysql restart

方式二:
# service mysql restart

2 开启数据库默认端口

首先,使用如下命令查看3306端口(MySQL默认端口号,没有更改的情况下就是3306)是否对外开放:

netstat -an | grep 3306

如果显示如下,说明MySQL端口目前只监听本地连接127.0.0.1。然后需要修改MySQL的配置文件。

tcp	 0	0	127.0.0.1:3306	0.0.0.0:*	LISTEN

修改MySQL配置文件:

# cd /etc/mysql/mysql.conf.d
# vim mysqld.cnf

在这里插入图片描述
MySQL的默认端口也可以通过该文件进行修改。

将其中bind-address = 127.0.0.1注释掉。然后重启MySQL。

通过上述两个步骤之后就可以重新试一下是否可以访问,如果还是无法访问,那就有可能是防火墙的原因。

扫描二维码关注公众号,回复: 8795898 查看本文章

3 检查防火墙

可以先关闭防火墙测试,如果关闭之后就可以访问,那么可能就是MySQL的端口未开放,关闭防火墙和开放端口的命令如下:

关闭防火墙:

sudo ufw stop

开放3306端口:

sudo ufw allow 3306

4 附录

UFW 是Ubuntu下的一个主机端的iptables类防火墙配置工具(底层调用iptables来处理),简单易用。

安装方法
sudo apt install ufw
使用方法

ufw 的指令列表:
在这里插入图片描述

常用ufw 指令介绍

启用防火墙

sudo ufw enable
sudo ufw default deny
## 作用:开启了防火墙并随系统启动同时关闭所有外部对本机的访问(本机访问外部正常)。

作用:开启了防火墙并随系统启动同时关闭所有外部对本机的访问(本机访问外部正常)。

关闭防火墙

sudo ufw stop

查看防火墙状态

sudo ufw status

查看应用程序列表

sudo ufw app list

增加许可规则 许可ssh 端口

sudo ufw allow ssh

允许外部访问80端口

sudo ufw allow 80

禁止外部访问80 端口

sudo ufw delete allow 80

允许此IP访问所有的本机端口

sudo ufw allow from 192.168.1.1

可以允许所有RFC1918网络(局域网/无线局域网的)访问这个主机(/8,/16,/12是一种网络分级)

sudo ufw allow from 10.0.0.0/8
sudo ufw allow from 172.16.0.0/12
sudo ufw allow from 192.168.0.0/16
发布了21 篇原创文章 · 获赞 11 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/hexf9632/article/details/103890046