0%

阿里云服务器MySQL远程连接 10060错误

阿里云服务器MySQL远程连接

我的服务器是阿里云轻量服务器,Ubuntu操作系统。

安装mysql

1
2
sudo apt update
sudo apt install mysql-server

安装完成后,启动mysql

1
sudo systemctl start mysql

查看mysql启动状态

1
sudo systemctl status mysql

active(running)表示启动成功

Untitled

输入命令可以进入mysql-server

1
mysql -u root -p

授权mysql远程访问

修改mysql配置文件

进入mysql配置文件,mysql.conf.d文件夹里面有两个配置文件,注意看清楚使用的是哪一个

1
vim /etc/mysql/mysql.conf.d/mysqld.cnf

在配置文件中找到一下行,修改服务器IP

1
bind-address = 127.0.0.1

图方便的话可以修改成0.0.0.0

1
2
# bind-address = 127.0.0.1
bind-address = 0.0.0.0 //服务器IP地址

修改后如下图所示

Untitled

重启mysql

1
sudo systemctl restart mysql

查看是否设置成功

1
sudo ss -tuln //

查看Local Address:Port 3306端口,下图为设置成功。(如果是127.0.0.1:3306 则失败 )

Untitled

创建可以远程访问的用户

1
2
3
CREATE USER '新用户名'@'%' IDENTIFIED BY '密码';
GRANT ALL PRIVILEGES ON *.* TO '新用户名'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;

创建好之后可以查询一下,host 的值为% 就可以了

1
2
use mysql
select user,host from user;

Untitled

打开防火墙

首先在阿里云防火墙中添加规则,可以直接在应用类中选择MYSQL

Untitled

设置好后如下图所示

Untitled

本来我以为设置成功了,但在本地实际连接的时候还是不行

1332907-20200604142649035-723242505.png

然后我在Ubuntu上安装了防火墙工具检查端口状态

1
sudo apt firewalld

查看防火墙状态

1
systemctl status firewalld

Untitled

查看3306端口

1
firewall-cmd --query-port=3306/tcp

查询结果是 no

1
2
3
4
5
You're performing an operation over default zone ('public'),
but your connections/interfaces are in zone 'docker' (see --get-active-zones)
You most likely need to use --zone=docker option.

no

添加3306端口

1
2
firewall-cmd --add-port=3306/tcp --permanent
firewall-cmd --reload

再次查询

1
firewall-cmd --query-port=3306/tcp
1
2
3
4
5
You're performing an operation over default zone ('public'),
but your connections/interfaces are in zone 'docker' (see --get-active-zones)
You most likely need to use --zone=docker option.

yes

恭喜,现在可以在本地连接服务器的数据库了

如果觉得我的文章对您有用,赏我一包辣条吧!您的支持将鼓励我继续创作!也可以加我微信一起交流学习,折腾点有意思事情。