接到任务看看mysql为啥起不来,就上服务器上看了看,确实起不来,至于之前发生了啥也不知道。
服务器Ubuntu,mysql-5.6
1.先试下mysql登陆
mysql -uroot -p
发现报错ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock',这个错误好熟悉,经常碰到。但是造成这种错误的原因还是多种多样的。
2.估计是mysql服务没开启,于是开启mysql
/etc/init.d/mysql start
开启报错:the server quit without updating pid(/var/run/mysqld/mysqld.pid)
3.查看文件夹权限
ls -l /var/run/mysqld
看mysql是否有权限操作,如果没有则修改权限
chown -R mysql.mysql
/var/run/mysqld
然后进入到/var/run/mysqld中看一看,发现根本没有文件
于是手动创建了一个mysqld.pid,再启动mysql发现还是报错,但是手动创建的mysqld.pid文件被删除了
4.查看错误日志
首先去/var/log/mysql/
下去看一看,log下都没有mysql目录,没有开启错误日志
然后用
hostname
查看hostname.err错误日志
查看/etc/my.cnf
找到mysql存放数据的地址/data/mysql
在/data/mysql/
下找到hostname.err
tail -n 100 hostname.err
日志信息不全?没有ERROR?近段时间的日志信息都没有
5.还是去开启mysql错误日志
创建/var/log/mysql
目录并赋权
编辑/etc/my.cnf
增加log_error=/var/log/mysql/error.log
再查看/var/log/mysql/error.log
,可以找到一条ERROR:Can't find messagefile '/usr/share/mysql/errmsg.sys'
查到一下这个文件:locate errmsg.sys
找到了一大摞,选择手动复制一个上去
mkdir /usr/share/mysql
cp /usr/local/mysql/share/english/errmsg.sys /usr/share/mysql/errmsg.sys
再启动mysql,就成功了