CentOS 下 MySQL DateBasic 抢救
CentOS 下 MySQL DateBasic 抢救
强 Kill 数据库进程。
分析问题:确定报错内容
报错信息:The server quit without updating PID file /var/lib/mysql/localhost.localdomain.pid
第一方案:解决报错内容
综合晚上所有报错解决方案:
1.文件没有写的权限
- chmod a+w /usr/local/mysql/data/NAME.pid
2.进程已经存在mysql进程
- ps -ef |grep mysql
3.二次在机器上安装mysql,残余数据影响了服务的启动。
- yum remove mysql-server
4.mysql在启动时没有指定配置文件时会使用/etc/my.cnf配置文件
- socket = /tmp/mysql.sock
- datadir = /usr/local/mysql/data
5.skip-federated 字段问题
- [ERROR] /usr/local/mysql/bin/mysqld: unknown option '--skip-federated'
6.错误日志目录不存在
- log-error=/usr/local/mysql/log/error.log
- log=/usr/local/mysql/log/mysql.log
7.CentOS 系统,默认会开启SeLinux
- setenforce 0
8.目录 /etc/mysql/ 与文件 /etc/my.cnf 重复
- mv /etc/mysql/my.cnf /etc/mysql/my.cnf.bak
9.废弃无用文件造成服务无法启动
- rm -rf /usr/local/mysql/data/ib_logfile0
- rm -rf /usr/local/mysql/data/ib_logfile1
- rm -rf /usr/local/mysql/data/mysql-bin.index
第二方案:重装重新配置
``
# cat /etc/my.cnf
user = mysql
tmpdir = /tmp
[mysqld]
port = 3306
socket = /var/lib/mysql/mysql.sock
datadir = /usr/local/mysql/data
pid-file = /usr/local/mysql/data/mysql.pid
log-error = /usr/local/mysql/data/error.log
``
# ./mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --pid-file=/usr/local/mysql/data/mysql.pid --tmpdir=/tmp
# service mysqld start && mysqladmin -u {username} passowrd {password}
Starting MySQL SUCCESS!
一些小备注
1、socket 非常重要。当配置文件与命令出现冲突,应该听从命令显示。
2、log 非常重要,每个 MySQL 都应该加之。
log=/usr/local/mysql/log/mysql.log
log-error=/usr/local/mysql/log/error.log
3、数据库恢复使用 mysql -u{username} -p{password} {databases} <{filename}.sql
4、淡定,一般数据库只要备份在没有太大问题。可以再看看这篇文章
如果你真的选择了重新安装配置,那么应该更换目录避免冲突(包括mysql-server与lnmp)。可以尝试制作While+For循环服务启动脚本(wall命令是个好东西)