通过公网ip访问云服务器mysql的方法

 
Category: Linux-Shell

方法

环境: Ubuntu20.04(x86_64) MySQL8.0.31

开端口

addtcp 3306
reufw

并且在阿里云的管理界面开3306端口.

改配置文件

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

其中bind-address改为:(要不然只能在本地访问)

bind-address        = 0.0.0.0

添加数据库配置

# 进入数据库
# mysql -uroot -p 
# 输入
CREATE USER 'root'@'%' IDENTIFIED BY '<数据库密码>';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';
FLUSH PRIVILEGES;

百分号是通配符, 是指允许所有IP1.

更改密码的命令是:

  ALTER USER 'root'@'%' IDENTIFIED BY '<新的密码>';

MySQL :: MySQL 8.0 Reference Manual :: B.3.3.2 How to Reset the Root Password;

重启MySQL服务

sudo systemctl restart mysql

可以通过port_status 3306查看一下端口情况, 如果是下面这样:

tcp        0      0 127.0.0.1:33060         0.0.0.0:*               LISTEN      19251/mysqld
tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      19251/mysqld
25   ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:3306 ctstate NEW,UNTRACKED

那么就可以顺利访问了:

mysql -h<公网IP> -P3306 -uroot -p<密码>

否则可能需要kill -9 一下mysqld.

ref