Linux MySQL 常见无法启动或启动异常的解决方案

Linux MySQL 常见无法启动或启动异常的解决方案

Linux MySQL 常见无法启动或启动异常的解决方案

  在 Linux 上自建 MySQL 服务器,经常遇到各种无法启动或启动后异常的问题,本文列举一些常见问题的解决办法。

  注意:以下错误日志提示,都是查看 MySQL 错误日志得到,查看方法如下:

  查看下 MySQL 配置文件 my.cnf 中有记录,日志记录在 /alidata/log/mysql/error.log

1.jpg

  MySQL 配置文件 my.cnf 权限问题导致无法启动,错误提示:World-writable config file \'/etc/my.cnf\'  is ignored

  Binlog 丢失导致无法启动,错误日志: File \'./mysql-bin.000001\' not found

  Binlog 无法读取导致无法启动,错误日志:Failed to open log (file \'./mysql-bin.000001\', errno  13)

  不能创建 PID 导致无法启动,错误日志:Can\'t start server: can\'t create PID file: No such  file or directory

  不能创建临时文件导致无法启动,错误日志:mysqld: Can\'t create/write to file \'/tmp/ibfguTtC\'  (Errcode: 13)

  MySQL 服务无法识别导致无法启动,错误提示:mysqld: unrecognized service

  MySQL 配置了过大的内存导致无法启动,错误日志:InnoDB: Cannot allocate memory for the buffer  pool

  MySQL 启动参数过多导致无法启动,错误提示:Too many arguments (first extra is \'start\')

  MySQL 目录权限问题导致无法启动,错误日志:File \'./mysql-bin.index\' not found (Errcode:13 -  Permission denied)

  MySQL 未初始化导致无法启动,错误提示:can\'t open the mysql.plugin table

  MySQL 启动成功但未监听端口

  MySQL ibdata1权限问题导致无法启动,错误日志:InnoDB Operating system error number 13 in a  file operation

  磁盘空间满导致 MySQL 无法启动

  进程残留导致 MySQL 无法启动

  MySQL 服务自动停止

  MySQL 配置文件 my.cnf 权限问题导致无法启动,错误提示:World-writable config file \'/etc/my.cnf\'  is ignored

  问题描述

  主机 Linux MySQL 无法启动,报如下错误:

2.jpg

  问题分析

  查看 MySQL 错误日志发现如下错误(提示 MySQL 库的 host 表无法打开):

3.jpg

  查看 /etc/my.cnf 配置文件:

4.jpg

  到 MySQL 数据库所在目录查看表是否存在:

5.jpg

  发现 MySQL 库的 host 表是存在的,那为什么会提示不存在呢?

  问题应该出在 /etc/my.cnf 文件上,从第一个截图也可以看到警告信息(/etc/my.cnf 被忽视)

  查看文件权限:

6.jpg

  原来文件权限被设置成 777,因安全问题导致被 MySQL 忽视,所以去查询默认的数据库存放路径,没有 MySQL 库的 host  表导致启动失败:

7.jpg

  解决办法

  将 /etc/my.cnf 权限修改成 644,然后启动 MySQL 即可:

8.jpg

  Binlog 丢失导致无法启动,错误日志: File \'./mysql-bin.000001\' not found

  问题描述

  清理磁盘空间时删除了全部 binglog 日志,导致 MySQL 无法启动:

9.jpg

  MySQL 的 errorlog 里面可以看到错误信息:

10.jpg

  解决办法

  1、注释 Binlog 配置恢复方法:

  编辑 /etc/my.cnf,找到 log-bin=mysql-bin,在前面加#将其注释暂时关闭 binlog,保存修改后启动 MySQL  服务

  注意:my.cnf 配置文件路径以实际调用路径为准

11.jpg

  2、清理 Binlog 索引恢复方法:

  查看 Binlog 索引文件

12.jpg

  所以,需要清空 mysql-bin.index 索引文件后即可,清理方法可以通过 vi 或者 echo 命令清理,如下:

  echo “” > mysql-bin.index

  去除 Binlog 日志索引文件中调用的内容后,测试启动成功。

  [root@test var]# /etc/init.d/mysqld startStarting MySQL. SUCCESS!

  3、文件还原恢复方法:

  提交工单,由我们帮您挂载最近的快照,您从快照磁盘复制最新的 binlog 文件到 mysql 的数据目录下,再重启 MySQL 服务即可。

  注意:提交工单时请说明需要挂载快照的磁盘和快照。

  正确清理 MySQL Binlog 方法请参考如下命令:

  mysql -uroot -p 密码use mysql;purge binary logs to ‘mysql-bin.011113’;

  注意:mysql-bin.011113 是 Binlog 文件名,mysql-bin.011113 不会被删除,而 mysql-bin.011113  之前的日志都会被删除。

13.jpg

  Binlog 无法读取导致无法启动,错误日志:Failed to open log (file \'./mysql-bin.000001\', errno  13)

  问题描述

  MySQL 无法启动报错:

  Starting MySQL…The server quit without updating PID file  [FAILED]a/server/mysql/data/test.pid).

  查看 MySQL 的错误日志会提示如下信息:

  110711 00:00:00 [ERROR] Failed to open log (file \'./mysql-bin.000001\',  errno 13)

  这说明 Binlog 日志无法去读,一般由于磁盘空间满,或者权限不正确导致。

  解决办法

  首先查询磁盘空间:

  [root@test /]# df -hFilesystem Size Used Avail Use% Mounted on/dev/xvda1  20G 2.7G 17G 14% /tmpfs 498M 0 498M 0% /dev/shm/dev/xvdb1 30G 19G 9.7G 66%  /alidata

  查看磁盘空间没有满,则需要 ls 命令检查文件权限:

  -r———— 1 root root 601 Jul 28 2014 mysql-bin.000001

  这说明文件属主和权限不正确,需要执行如下两条命令修复(mysql-bin.000001 这个日志文件需要换成具体文件名):

  chmod 660 mysql-bin.000001chown mysql.mysql mysql-bin.000001

  修改正确后已经可以正常启动mysql

  不能创建 PID 导致无法启动,错误日志:Can\'t start server: can\'t create PID file: No such  file or directory

  问题描述

  MySQL 启动报错信息如下:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zzzyjf.html