ubuntu上mysql服务启动失败怎么办
导读:Ubuntu 上 MySQL 启动失败的排查与修复 一 快速定位 查看服务状态与最近日志,获取明确报错关键词: 命令:sudo systemctl status mysql、sudo journalctl -xeu mysql、sudo...
Ubuntu 上 MySQL 启动失败的排查与修复
一 快速定位
- 查看服务状态与最近日志,获取明确报错关键词:
- 命令:
sudo systemctl status mysql、sudo journalctl -xeu mysql、sudo tail -n50 /var/log/mysql/error.log
- 命令:
- 常见关键词与含义对照:
- Permission denied(/var/run/mysqld 或 /var/log/mysql 权限不足)
- Bind on unix socket(套接字目录权限或已有实例占用)
- Address already in use(端口 3306 被占用)
- InnoDB: Operating system error(磁盘空间或 InnoDB 恢复失败)
- Unit mysql.service not found(未安装或安装损坏)
二 高频原因与对应修复
- 配置错误(/etc/mysql/my.cnf 或 /etc/mysql/mysql.conf.d/*.cnf)
- 处理:逐项核对配置,修正语法/路径冲突;必要时先备份后恢复默认配置再逐步加回自定义项。
- 数据目录权限不正确
- 处理:
sudo chown -R mysql:mysql /var/lib/mysql,必要时sudo chmod -R 755 /var/lib/mysql;确保 AppArmor/SELinux 未拦截(Ubuntu 常见为 AppArmor)。
- 处理:
- 端口冲突(默认 3306)
- 处理:
sudo netstat -tulnp | grep 3306找到占用进程并停止,或在配置中更换端口后重启。
- 处理:
- 套接字目录或日志目录权限问题
- 处理:
sudo chown -R mysql:mysql /var/run/mysqld;sudo chown -R mysql:adm /var/log/mysql,确保日志文件可写。
- 处理:
- 磁盘空间不足
- 处理:
df -h检查分区使用率,清理不必要文件后重试启动。
- 处理:
- 服务未安装或服务文件损坏
- 处理:
sudo apt update & & sudo apt install --reinstall mysql-server;若提示 unit not found,先sudo apt purge mysql-server再安装。
- 处理:
三 逐步排查操作清单
- 获取明确错误:
sudo systemctl status mysql & & sudo tail -n50 /var/log/mysql/error.log - 修正配置并验证:
sudo nano /etc/mysql/my.cnf(或/etc/mysql/mysql.conf.d/mysqld.cnf),保存后sudo systemctl restart mysql - 修复权限:
- 数据目录:
sudo chown -R mysql:mysql /var/lib/mysql - 套接字目录:
sudo chown -R mysql:mysql /var/run/mysqld - 日志目录:
sudo chown -R mysql:adm /var/log/mysql
- 数据目录:
- 检查端口占用:
sudo netstat -tulnp | grep 3306,释放或更换端口 - 检查磁盘:
df -h,清理空间 - 仍未恢复:备份配置与数据后重装
sudo apt purge mysql-server mysql-client mysql-common mysql-server-core-* mysql-client-core-*sudo apt autoremove & & sudo apt autocleansudo apt update & & sudo apt install mysql-server
- 启动并验证:
sudo systemctl start mysql & & sudo systemctl status mysql
四 常见报错与修复要点
- Failed to start mysql.service: Unit mysql.service not found
- 含义:未安装或服务文件缺失;处理:安装或重装
mysql-server,必要时purge后重装。
- 含义:未安装或服务文件缺失;处理:安装或重装
- Can’t start server: Bind on unix socket: Permission denied
- 含义:/var/run/mysqld 权限不足或目录不存在;处理:
sudo chown -R mysql:mysql /var/run/mysqld,必要时创建目录并赋权。
- 含义:/var/run/mysqld 权限不足或目录不存在;处理:
- cannot create /var/log/mysql/error.log: Permission denied
- 含义:日志目录/文件不可写;处理:
sudo chown -R mysql:adm /var/log/mysql,清理或重建 error.log 后重试。
- 含义:日志目录/文件不可写;处理:
- Address already in use
- 含义:3306 被占用;处理:停掉占用进程或更改 MySQL 端口并重启。
- InnoDB: Operating system error … No space left on device
- 含义:磁盘满或 InnoDB 恢复失败;处理:释放磁盘空间,必要时先备份再执行修复或重装。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: ubuntu上mysql服务启动失败怎么办
本文地址: https://pptw.com/jishu/770741.html
