在 Debian 上排查 MySQL(通常是 MySQL 或 MariaDB)报错,建议按下面顺序一步步来,从“看现象 → 看日志 → 看配置 → 看资源 → 看权限”系统排查。
systemctl status mysql
# 或(MariaDB)
systemctl status mariadb
常见状态:
active (running):服务在跑failed:启动失败(重点看日志)inactive:没启动尝试启动:
sudo systemctl start mysql
mysql -e "SHOW VARIABLES LIKE 'log_error';"
或查看配置文件:
sudo grep -R "log_error" /etc/mysql/
常见路径:
/var/log/mysql/error.log/var/log/mysqld.logsudo tail -f /var/log/mysql/error.log
重点看:
Can't start serverPermission deniedTable './xxx' is marked as crashedOut of memoryInnoDB: ...ERROR 2002 (HY000): Can't connect to local MySQL server原因:
检查:
ls -l /var/run/mysqld/mysqld.sock
修复:
sudo mkdir -p /var/run/mysqld
sudo chown mysql:mysql /var/run/mysqld
sudo systemctl restart mysql
ERROR 1045 (28000): Access denied原因:
排查:
mysql -u root -p
重置 root 密码(忘记密码时):
sudo systemctl stop mysql
sudo mysqld_safe --skip-grant-tables &
mysql
FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'newpass';
ERROR 1130: Host 'x' is not allowed原因:
解决:
GRANT ALL ON *.* TO 'user'@'%' IDENTIFIED BY 'pass';
FLUSH PRIVILEGES;
并确保:
bind-address = 0.0.0.0
主配置文件:
/etc/mysql/my.cnf
/etc/mysql/mysql.conf.d/mysqld.cnf
常见错误:
datadir 权限不对检查数据目录权限:
ls -ld /var/lib/mysql
应为:
drwx------ mysql mysql
df -h
free -m
InnoDB 常见报错:
InnoDB: Cannot allocate memory for the buffer pool
解决:
innodb_buffer_pool_sizemyisamchk -r /var/lib/mysql/db/table.MYI
或:
REPAIR TABLE tablename;
sudo mysqld --safe-mode
或:
sudo mysqld --skip-grant-tables
✅ 服务状态
✅ 错误日志
✅ 配置文件
✅ 权限(mysql 用户)
✅ 磁盘 / 内存
✅ 防火墙 / 端口
如果你能贴出具体报错信息(命令行报错 or 日志内容),我可以直接帮你定位是哪一类问题。