Mysql公网访问配置过程

80 阅读1分钟

安装

  1. 使用apt-get而不是apt下载mysql
sudo apt-get update
sudo apt-get install mysql-server
  1. 查看mysql的服务状态
sudo systemctl status mysql

暴露公网端口

屏幕截图 2025-05-05 031055.png 3. 查看3306端口的占用情况

 netstat -ano |grep "3306"

如果看到的是

tcp   LISTEN 0      70             127.0.0.1:33060      0.0.0.0:*       
tcp   LISTEN 0      151            127.0.0.1:3306       0.0.0.0:* 

或者是输入

grep bind-address /etc/mysql/mysql.conf.d/mysqld.cnf
#响应为
# bind-address            = 127.0.0.1
# mysqlx-bind-address     = 127.0.0.1

就说明你的3306只能在本地回环访问,外网是无法访问的,就算你改了防火墙也不可以访问,修改mysql的bind-address为0.0.0.0

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

把127.0.0.1改成0.0.0.0

再在mysql输入

update user set host='%' where user ='root';

修改mysql的用户host

select host,user from user;

来观察输出

图片.png

设置密码可访问

此时可能会出现你在workbench登录

屏幕截图 2025-05-05 032109.png 如果出现了这个而你又没有设置密码(或者你以为设置了) 需要配置Mysql使用密码访问的配置 在终端输入

mysql -u root -p

如果你不输入密码就能登录就说明没有密码,在控制台输入

SELECT user, host, authentication_string FROM mysql.user;

可以看到不存在root的auth_string 此时你可以输入

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'your_new_password';

来修改你的mysql可以接收密码登录 最终的检验是当在控制台尝试登录mysql必须输入密码,随后就可以在服务器登录了