解决无法远程连接MySQL服务的问题

① 设置MySQL中root用户的权限:

mysql 复制代码
[root@nginx-dev etc]# mysql -uroot -pRoot@123
mysql> use mysql;
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'Root@123' WITH GRANT OPTION;
mysql> select host,user,authentication_string from user;
+-------------+----------------------+-------------------------------------------+
| host        | user                 | authentication_string                     |
+-------------+----------------------+-------------------------------------------+
| localhost   | root                 | *E32A671056805EBAD613F4090727279564EED370 |
| localhost   | mysql.session        | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
| localhost   | mysql.sys            | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
| %           | root                 | *E32A671056805EBAD613F4090727279564EED370 |
| %           | myuser               | *FABE5482D5AADF36D028AC443D117BE1180B9725 |
+-------------+----------------------+-------------------------------------------+
mysql> flush privileges;
mysql> quit
[root@nginx-dev etc]# service mysqld restart

第一个root用户只能从本地主机连接,而第二个root用户可以从任何主机连接。

② 检查防火墙有没有屏蔽掉3306端口

shell 复制代码
[root@nginx-dev etc]# systemctl start firewalld
[root@nginx-dev etc]# sudo firewall-cmd --permanent --zone=public --add-port=13306/tcp
Warning: ALREADY_ENABLED: 13306:tcp
success
[root@nginx-dev etc]# sudo firewall-cmd --permanent --zone=public --add-port=3306/tcp
Warning: ALREADY_ENABLED: 3306:tcp
success
[root@nginx-dev etc]# sudo firewall-cmd --zone=public --list-ports
13306/tcp 3306/tcp
[root@nginx-dev etc]# netstat -apn | grep 3306
tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      4379/mysqld
tcp        0      0 192.168.1.9:3306        192.168.1.10:65037      ESTABLISHED 4379/mysqld
tcp        0      0 192.168.1.9:3306        192.168.1.10:65041      ESTABLISHED 4379/mysqld

③ 修改配置文件/etc/my.cnf,绑定IP设置为0.0.0.0,即接收任意地址的主机的连接,端口绑定3306。

相关推荐
安当加密4 小时前
MySQL 数据库如何加密脱敏?TDE透明加密 + DBG数据库网关 双引擎加固实战
数据库·mysql·adb
Kapaseker4 小时前
你不看会后悔的2025年终总结
android·kotlin
IT技术分享社区5 小时前
MySQL统计查询优化:内存临时表的正确打开方式
数据库·mysql·程序员
短剑重铸之日5 小时前
7天读懂MySQL|Day 5:执行引擎与SQL优化
java·数据库·sql·mysql·架构
Dreamboat-L5 小时前
云服务器上部署nginx
java·服务器·nginx
咕噜签名-铁蛋6 小时前
AI扣子:重构人机交互的智能连接点
服务器
陌北v17 小时前
为什么我从 MySQL 迁移到 PostgreSQL
数据库·mysql·postgresql
AI科技星7 小时前
张祥前统一场论宇宙大统一方程的求导验证
服务器·人工智能·科技·线性代数·算法·生活
魂万劫7 小时前
如何在虚拟机VM上|Linux环境内安装windows
linux·运维·服务器·windows
alexhilton7 小时前
务实的模块化:连接模块(wiring modules)的妙用
android·kotlin·android jetpack