温馨提示×

为何连不上debian mysql

小樊
59
2026-09-20 03:39:02
栏目: 云计算

连接不上 Debian 上的 MySQL,常见原因和排查思路如下(按出现频率排序):


1. MySQL 没启动

systemctl status mysql

如果没运行:

systemctl start mysql
systemctl enable mysql

2. 监听地址限制(只监听 127.0.0.1)

查看监听端口:

ss -tlnp | grep 3306

如果只看到:

127.0.0.1:3306

说明只允许本机连接。

编辑配置文件(版本不同位置可能不同):

/etc/mysql/mysql.conf.d/mysqld.cnf
# 或
/etc/mysql/my.cnf

找到:

bind-address = 127.0.0.1

改为:

bind-address = 0.0.0.0

然后重启:

systemctl restart mysql

3. 用户权限不允许远程连接

例如 root@localhost 不能远程连。

登录 MySQL:

mysql -u root -p

查看用户 host:

SELECT user, host FROM mysql.user;

创建允许远程的用户:

CREATE USER 'user'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'user'@'%';
FLUSH PRIVILEGES;

4. 防火墙 / 安全组拦截

Debian 默认可能用 nftables 或 ufw:

ufw status

如果开启且没放行:

ufw allow 3306/tcp

云服务器还要检查安全组是否放行 3306。


5. 连接命令或端口错误

本地:

mysql -u user -p -h 127.0.0.1

远程:

mysql -u user -p -h 服务器IP

6. AppArmor / SELinux(较少见)

Debian 默认用 AppArmor,一般不影响网络连接。


7. MySQL 8 认证插件问题

MySQL 8 默认用 caching_sha2_password,部分旧客户端连不上。

可改为:

ALTER USER 'user'@'%' IDENTIFIED WITH mysql_native_password BY 'password';

如果你愿意,可以把具体报错信息和**连接方式(本地/远程/程序/命令行)**发我,我可以直接帮你定位。

0 踩