MariaDB 在 Debian 下的故障排查方法
一 快速定位与通用检查
sudo systemctl status mariadb 与 sudo journalctl -xeu mariadb,优先查看失败的 ExecStartPre/ExecStartPost 阶段及具体报错行。sudo tail -n100 /var/log/syslog | grep -i mariadb。sudo systemctl start mariadb;若启动失败,回到上一步看日志定位根因。二 服务无法启动的高频场景与修复
systemctl status 显示 ExecStartPost=/etc/mysql/debian-start 失败(如 status=203/EXEC 或 code=2),日志提示 “No such file or directory” 或 “Permission denied”。ls /etc/mysql/debian-start*,若有 debian-start.dpkg-dist,可执行:sudo cp /etc/mysql/debian-start.dpkg-dist /etc/mysql/debian-start && sudo chmod +x /etc/mysql/debian-start。apt download mariadb-server-<版本号>dpkg-deb --extract mariadb-server-<版本号>.deb /tmp/mariadb-tmpsudo cp /tmp/mariadb-tmp/etc/mysql/debian-start /etc/mysql/ && sudo chmod +x /etc/mysql/debian-startsudo systemctl start mariadb。sudo systemctl stop mariadbsudo rm -f /var/lib/mysql/ib_logfile* /var/lib/mysql/aria_log* /var/lib/mysql/tc.logsudo systemctl start mariadb。sudo apt-get install libaio1,然后重新初始化/启动。三 连接与权限类问题
sudo systemctl is-active mariadb;若未运行则启动。--socket 或调整 [client] 配置。/etc/mysql/mariadb.conf.d/50-server.cnf,将 bind-address 设为 0.0.0.0(允许任意地址),保存后 sudo systemctl restart mariadb。sudo ufw allow 3306/tcp,或按需放行对应端口/来源。GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '你的密码' WITH GRANT OPTION;FLUSH PRIVILEGES;sudo mysql_secure_installation,按向导设置 root 密码、移除匿名用户、禁止远程 root 登录等。四 日志位置与关键排查命令清单
systemctl status mariadbjournalctl -xeu mariadb/var/log/syslog(可用 grep -i mariadb 过滤)systemctl start|restart|enable mariadbmysql_secure_installationapt download mariadb-server-<版本号> → dpkg-deb --extract ... → cp .../etc/mysql/debian-start /etc/mysql/ && chmod +x ...apt-get install libaio150-server.cnf 的 bind-address,ufw allow 3306/tcp,并在库内执行 GRANT ... TO 'root'@'%' ...; FLUSH PRIVILEGES;rsync -a /var/lib/mysql /backup/mysql-$(date +%F))。