温馨提示×

ubuntu mariadb为何连不上

小樊
35
2026-10-10 12:17:11
栏目: 云计算

Ubuntu 上 MariaDB 连不上是很常见的问题,原因很多。下面我按最常见原因 → 排查步骤 → 解决办法给你一套思路,你可以逐条对照。


一、先确认 MariaDB 是否真的在运行

systemctl status mariadb
# 或
systemctl status mysql

如果没运行:

sudo systemctl start mariadb
sudo systemctl enable mariadb

二、最常见原因 1:监听地址不对(只允许本地)

查看监听端口

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


三、最常见原因 2:用户不允许远程连接

即使端口通了,用户也可能被限制。

登录数据库

mysql -u root -p

查看用户 host

SELECT user, host FROM mysql.user;

如果 root 是:

root | localhost

只能本机连。

创建远程用户(推荐)

CREATE USER 'remote'@'%' IDENTIFIED BY '密码';
GRANT ALL PRIVILEGES ON *.* TO 'remote'@'%';
FLUSH PRIVILEGES;

四、最常见原因 3:Ubuntu 防火墙

查看防火墙

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

六、本地能连但远程不行?重点查这 3 个

  1. bind-address
  2. 用户 host
  3. 防火墙 / 云安全组

七、你可以贴信息我帮你精准判断

如果你愿意,把下面信息发我:

  • Ubuntu 版本
  • MariaDB 版本
  • 报错原文
  • ss -tlnp | grep 3306
  • SELECT user,host FROM mysql.user;

我可以直接告诉你是哪一条卡住了。

0 踩