Ubuntu 上 MariaDB 连不上是很常见的问题,原因很多。下面我按最常见原因 → 排查步骤 → 解决办法给你一套思路,你可以逐条对照。
systemctl status mariadb
# 或
systemctl status mysql
如果没运行:
sudo systemctl start mariadb
sudo systemctl enable mariadb
ss -tlnp | grep 3306
如果看到:
127.0.0.1:3306
说明 只允许本机连接
编辑:
sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
找到:
bind-address = 127.0.0.1
改为:
bind-address = 0.0.0.0
重启:
sudo systemctl restart mariadb
⚠️ 如果是云服务器,还要放通 安全组 3306
即使端口通了,用户也可能被限制。
mysql -u root -p
SELECT user, host FROM mysql.user;
如果 root 是:
root | localhost
只能本机连。
CREATE USER 'remote'@'%' IDENTIFIED BY '密码';
GRANT ALL PRIVILEGES ON *.* TO 'remote'@'%';
FLUSH PRIVILEGES;
sudo ufw status
如果开启:
sudo ufw allow 3306/tcp
| 报错 | 原因 |
|---|---|
Can't connect to MySQL server |
服务没起 / 端口没开 |
Connection refused |
防火墙 / bind-address |
Access denied |
用户或密码问题 |
Unknown host |
IP 写错 |
| 本地能连,远程不能 | bind / 用户 host |
bind-addresshost如果你愿意,把下面信息发我:
ss -tlnp | grep 3306SELECT user,host FROM mysql.user;我可以直接告诉你是哪一条卡住了。