温馨提示×

Ubuntu MySQL为何报错

小樊
37
2026-09-16 06:12:50
栏目: 云计算

Ubuntu 上 MySQL 报错的原因非常多,不能一概而论,需要看具体的报错信息。不过我可以先给你总结 Ubuntu 上 MySQL 最常见的几类报错及原因,你可以对照看看。


一、最常见报错场景

1️⃣ 启动失败(服务起不来)

systemctl status mysql
journalctl -xe

常见原因:

  • 磁盘空间不足
    df -h
    
  • 内存不足(尤其是云服务器)
  • /var/lib/mysql 权限错误
  • 配置文件错误(/etc/mysql/my.cnfconf.d
  • 之前异常关机导致 ibdata / ib_logfile 损坏

2️⃣ ERROR 2002 / 2003(连不上)

Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock'

原因:

  • MySQL 没启动
  • sock 文件路径不一致
  • Apparmor 限制(Ubuntu 特有)

3️⃣ ERROR 1698(Ubuntu 特有)

ERROR 1698 (28000): Access denied for user 'root'@'localhost'

原因: Ubuntu 默认用 unix_socket 认证
✅ 解决:

sudo mysql

或改认证方式:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '密码';

4️⃣ 安装报错(apt)

subprocess installed post-installation script returned error exit status 1

原因:

  • 之前 MySQL 没卸载干净
  • 数据目录已存在

✅ 解决:

sudo rm -rf /var/lib/mysql
sudo apt purge mysql-server
sudo apt install mysql-server

5️⃣ 中文乱码 / 排序规则错误

  • 数据库未设置 utf8mb4
  • 表字符集不一致

二、你需要告诉我这些,我才能精准判断

请把下面信息发我:

  1. 完整报错信息(截图或复制)
  2. 执行了什么命令出现的
  3. Ubuntu 版本
    lsb_release -a
    
  4. MySQL 版本
    mysql --version
    
  5. 是否刚安装 / 升级 / 重启后报错

三、快速自检命令(可先跑)

systemctl status mysql
sudo tail -n 50 /var/log/mysql/error.log
df -h
free -m

如果你愿意,直接把报错原文贴出来,我可以一步一步帮你修 ✅

0