linux中mysql远程连接不上怎么解决

29次阅读

答案是权限、配置、防火墙 或安全组未正确设置导致 mysql 无法远程连接;需检查并修改 MySQL 用户远程访问权限,将 bind-address 设为 0.0.0.0,开放防火墙及 云服务 器安全组 3306端口,并重启服务使配置生效。

linux 中 mysql 远程连接不上怎么解决

MySQL 在 linux 中无法远程连接,通常是因为权限、配置或 防火墙 设置问题。下面分几个关键点来排查和解决。

1. 检查 MySQL 用户是否允许远程访问

MySQL 默认只允许本地登录(localhost),需要创建或修改用户,使其可以从远程 IP 连接。

登录 MySQL:

mysql -u root -p

查看当前用户权限:

select host, user FROM mysql.user;

如果看到 root 用户的 host 是 localhost,就需要修改或新增一个允许远程连接的用户。

例如,允许 root 从任意 IP 连接(不推荐生产环境):

GRANT ALL PRIVILEGES ON *.* TO ‘root’@’%’ IDENTIFIED BY ‘your_password‘ WITH GRANT OPTION;

或者更安全的方式,指定某个 IP:

GRANT ALL PRIVILEGES ON *.* TO ‘root’@’192.168.1.100’ IDENTIFIED BY ‘your_password’ WITH GRANT OPTION;

刷新权限:

FLUSH PRIVILEGES;

2. 修改 MySQL配置文件 绑定地址

MySQL 默认可能只监听 127.0.0.1,导致外部无法访问。

编辑 MySQL配置文件,路径通常是:

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

/etc/my.cnf

找到 bind-address 这一行:

linux 中 mysql 远程连接不上怎么解决

码上飞

码上飞(CodeFlying)是一款 AI 自动化开发平台,通过自然语言描述即可自动生成完整应用程序。

linux 中 mysql 远程连接不上怎么解决138

查看详情 linux 中 mysql 远程连接不上怎么解决

bind-address = 127.0.0.1

改为:

bind-address = 0.0.0.0

这表示监听所有网络 接口。保存后重启 MySQL 服务:

sudo systemctl restart mysql

sudo service mysql restart

3. 检查防火墙设置

确保系统防火墙放行了 MySQL 的默认 端口3306。

如果是使用 ufw:

sudo ufw allow 3306

如果是使用 firewalld:

sudo firewall-cmd –permanent –add-port=3306/tcpsudo firewall-cmd –reload

如果是 云服务 器(如 阿里云 腾讯 云),还需检查安全组规则,确保入方向开放了 3306 端口。

4. 确认 MySQL 服务正在运行并监听正确端口

运行以下命令查看 MySQL 是否在监听 3306 端口:

sudo netstat -tulnp | grep :3306

应看到类似输出:

tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 1234/mysqld

如果没有输出,说明 MySQL 没启动或配置有问题。

基本上就这些。按顺序检查用户权限、配置文件、防火墙和服务状态,大多数远程连接问题都能解决。关键是别漏掉安全组或云服务商的网络策略。

站长
版权声明:本站原创文章,由 站长 2025-11-01发表,共计1272字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
1a44ec70fbfb7ca70432d56d3e5ef742
text=ZqhQzanResources