关于本文

在 Linux 上自建 MySQL 服务器,经常遇到各种无法启动或启动后异常的问题,下面给大家列举一些常见的问题及其解决办法,希望可以帮到你!本篇文章可能较长,先收藏再细读~

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

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

•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 服务自动停止

——————— 一大波问题来袭———————

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

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

【问题分析】

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

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

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

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

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

查看文件权限:

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

【解决办法】

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

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

【问题描述】

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

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

【解决办法】

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

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

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

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

查看 Binlog 索引文件

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

echo“”>mysql-bin.index

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

[]#/etc/init.d/mysqld startStartingMySQL.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 之前的日志都会被删除。

Q3:Binlog 无法读取导致无法启动

错误日志:Failed to open log (file ‘./mysql-bin.000001’, errno 13)

【问题描述】

MySQL 无法启动报错:

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

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

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

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

【解决办法】

首先查询磁盘空间:

[/]#df -hFilesystemSizeUsedAvailUse%Mountedon/dev/xvda120G2.7G17G14%/tmpfs498M0498M0%/dev/shm/dev/vdb130G19G9.7G66%/data

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

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

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

chmod660mysql-bin.000001chownmysql.mysql mysql-bin.000001

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

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

【问题描述】

MySQL 启动报错信息如下:

Starting mysqld (via systemctl):  Job for mysqld.service failed because the control process exited with error code. See “systemctl status mysqld.service” and “journalctl -xe” for details、 [FAILED]

根据提示,使用 systemctl status mysqld.service 和 journalctl -xe 查看服务启动失败的原因。

[~]#systemctl status mysqld.servicemysqld.service-SYSV:MySQLdatabase server.Loaded:loaded(/etc/rc.d/init.d/mysqld)Active:failed(Result:exit-code)sinceWed2016-01-2018:26:57CST;40sagoDocs:man:systemd-sysv-generator(8)Process:2979Extart=/etc/rc.d/init.d/mysqld start(code=exited,status=1/FAILURE)Jan2018:26:56spark01 systemd[1]:StartingSYSV:MySQLdatabase server….Jan2018:26:57spark01 mysqld[2979]:MySQLDaemonfailed to start.Jan2018:26:57spark01 mysqld[2979]:Startingmysqld:[FAILED]Jan2018:26:57spark01 systemd[1]:mysqld.service:control process exited,code=exited status=1Jan2018:26:57spark01 systemd[1]:Failedto start SYSV:MySQLdatabase server..Jan2018:26:57spark01 systemd[1]:Unitmysqld.service entered failed state.Jan2018:26:57spark01 systemd[1]:mysqld.service failed.[~]#journalctl-xeUnit session-2.scopehas begun starting up.Jan2018:26:48spark01 sshd[2916]:pam_unix(sshd:session):session openedforuser spark by(uid=0)Jan2018:26:52spark01 su[2944]:(to root)spark on pts/1Jan2018:26:52spark01 su[2944]:pam_unix(su-l:session):session openedforuser root by spark(uid=1000)Jan2018:26:56spark01 polkitd[909]:RegisteredAuthenticationAgentforunix-process:2974:117137(system bus name:1.25Jan2018:26:56spark01 systemd[1]:StartingSYSV:MySQLdatabase server….—Subject:Unitmysqld.service has begun start-up—Defined-By:systemd—Support:http :// lists . freedesktop . org / mailman / listinfo / systemd - devel ——Unitmysqld.service has begun starting up.Jan2018:26:57spark01 mysqld[2979]:MySQLDaemonfailed to start.Jan2018:26:57spark01 mysqld[2979]:Startingmysqld:[FAILED]Jan2018:26:57spark01 systemd[1]:mysqld.service:control process exited,code=exited status=1Jan2018:26:57spark01 systemd[1]:Failedto start SYSV:MySQLdatabase server..—Subject:Unitmysqld.service has failed—Defined-By:systemd—Support:http :// lists . freedesktop . org / mailman / listinfo / systemd - devel ——Unitmysqld.service has failed.——Theresult is failed.Jan2018:26:57spark01 systemd[1]:Unitmysqld.service entered failed state.Jan2018:26:57spark01 systemd[1]:mysqld.service failed.Jan2018:26:57spark01 polkitd[909]:UnregisteredAuthenticationAgentforunix-process:2974:117137(system bus name:1.

这些信息并不能提供服务启动失败的真正原因。

查看 MySQL 的告警日志:

2016-01-20T10:00:19.935771Z0[ERROR]/usr/sbin/mysqld:Can’t create/write to file‘/var/run/mysqld/mysqld.pid’(Errcode:2-Nosuch fileordirectory)2016-01-20T10:00:19.935795Z0[ERROR]Can’t start server:can’t create PID file:Nosuch fileordirectory16012018:00:20mysqld_safe mysqldfrompid file/var/run/mysqld/mysqld.pid ended

【解决办法】

MySQL 服务在启动的时候,不能创建 pid 文件。

在终端看一下该目录是否存在,如果不存在,手动创建:

~]# mkdir -p /var/run/mysqld/

再次尝试启动 MySQL 服务,报错如下:

Starting mysqld (via systemctl):  Job for mysqld.service failed because the control process exited with error code. See “systemctl status mysqld.service” and “journalctl -xe” for details. [FAILED]

查看 MySQL 的告警日志:

2016-01-20T10:28:37.183387Z0[ERROR]/usr/sbin/mysqld:Can’t create/write to file‘/var/run/mysqld/mysqld.pid’(Errcode:13-Permissiondenied)2016-01-20T10:28:37.183431Z0[ERROR]Can’t start server:can’t create PID file:Permissiondenied16012018:28:37mysqld_safe mysqldfrompid file/var/run/mysqld/mysqld.pid ended16012018:32:06mysqld_safeStartingmysqld daemonwithdatabasesfrom/var/lib/mysql

权限不正确,/var/run/mysqld/ 的属主和属组还是 root,MySQL 并不能在其中创建文件后修改该目录的属主和属组,

[~]#ls-ld/var/run/mysqld/drwxr-xr-x2root root40Jan2018:28/var/run/mysqld/[~]#chown mysql.mysql/var/run/mysqld/[~]#/etc/init.d/mysqld startStarting mysqld(via systemctl):[OK]

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

【问题描述】

MySQL 启动失败,错误日志:mysqld: Can’t create/write to file ‘/tmp/ibfguTtC’ (Errcode: 13)

说明/tmp目录无法写入

【解决办法】

1、使用命令ll -d /tmp命令检查目录权限

2、使用chmod 1777 /tmp设置为正确权限

再测试可以启动成功

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

【问题描述】

执行 MySQL 启动命令service mysqld start时,提示 mysqld: unrecognized service(未识别的服务),现象如图:

【问题分析】

因为 service 命令是通过 /etc/init.d 启动服务目录来调用的,所以我们需要看一下 /etc/init.d 是否存在 mysqld 这个服务,使用 find /etc/init.d/ -name mysqld 命令来查找,发现没有 mysqld 这个文件了

这个就是导致通过 service 命令启动报错的原因了,这时候我们需要将源码包中的 mysql.server 拷贝复制到 /etc/init.d/ 下,先使用 find / -name mysql.server 命令来查找下 mysql.server 文件位置,发现是在server/mysql-5.6.21/support-files/mysql.server 中

【解决办法】

现在我们需要将这个文件复制到 /etc/init.d/ 目录下,改名为 mysqld,并且赋予这个文件可执行权限

最后通过命令chkconfig —add mysqld添加开机自动启动服务

使用service mysqld start启动成功

本期提供了6个问题及解决方案,不知有没有帮到你?更多问题,欢迎留言,下周我们还有后续~

来源:京东云

分享到:

polkit启动失败_Linux MySQL 常见无法启动或启动异常的解决方案(上)相关推荐

  1. apmserv5.2.6 mysql启动失败_win7(xp) APMServ5.2.6 Apache启动失败,MYSQL启动失败 的解决办法...

    win7(xp) APMServ5.2.6 Apache启动失败,MYSQL启动失败 的解决办法 1.APMServ程序所在路径不能含有汉字和空格.例子:D:\r\APMServ5.2.6\ 2.去掉 ...

  2. win7(xp) APMServ5.2.6 Apache启动失败,MYSQL启动失败 的解决办法

    win7(xp) APMServ5.2.6 Apache启动失败,MYSQL启动失败 的解决办法 1.APMServ程序所在路径不能含有汉字和空格.例子:D:\r\APMServ5.2.6\  2.去 ...

  3. yum mysql 启动失败_Linux下MySQL数据库yum升级后无法启动解决办法 | 系统运维

    说明: 操作系统:CentOS 5.8 Web运行环境:Apache+MySQL+PHP(全部使用yum命令在线安装) Apache版本:2.2.3 MySQL版本:5.0.95 PHP版本:5.1. ...

  4. mysql启动失败:mysql服务无法启动 服务没有报告任何错误 解决方法

    My SQL server8.0 安装后,启动失败,提示信息如下: 尝试以下步骤,最终解决问题: 1 查看host文件(C:WindowsSystem32driversetchosts),是否修改过本 ...

  5. 对于Android虚拟机启动失败“The emulator process for AVD Nexus_5X_API_30 was killed”的解决方案

    今天遇到的狗血启动失败,倒霉倒霉倒霉! 搜了半天,网上的帖子好像管用,但好像又不是完全管用,唉 ~ 半小时顺藤摸瓜解决了,分享一下我的方案. Android虚拟机启动失败解决方案: 一. 确保HAXM ...

  6. 计算机管理中be启动不了,绝地求生BE服务启动失败解决方法 绝地求生游戏无法启动怎么办...

    绝地求生BE服务启动失败解决方法,绝地求生游戏无法启动怎么办?绝地求生BE服务启动失败怎么解决?想必不少友友都不太清楚吧?下面跟随小编冉冉一起去看看吧! 绝地求生BE服务启动失败怎么办 过一阵窗口消失 ...

  7. enspac启动失败代码2_解决eNSP路由器AR启动失败错误代码40,交换机正常的问题

    问题描述 eNSP昨晚正常使用,今天上午出现问题:AR路由器启动失败,错误代码40.但交换机可正常启动. eNSP版本:eNSP V100R002C00B510 Setup.exe 操作系统:Wind ...

  8. 启动金蝶显示服务器未启动失败,金蝶云平台加密服务器未启动

    金蝶云平台加密服务器未启动 内容精选 换一换 外部镜像文件在从原平台导出前,没有按照"Windows操作系统的镜像文件限制"的要求完成初始化操作,推荐您使用弹性云服务器完成相关配置 ...

  9. Docker启动失败报错Failed to start Docker Application Container Engine解决方案

    在给一台腾讯云机器安装docker后发现无法启动,总是报错Failed to start Docker Application Container Engine,解决思路分享一下,以免各位童鞋踩坑. ...

  10. polkit启动失败_linux某服务启动失败,提示Authorization not available. Check if polkit...问题解决...

    服务器重启后,开启docker服务,发现无法开启,提示如下 [root@10-13-160-184 ~]# systemctl start docker Authorization not avail ...

最新文章

  1. 台式计算机,笔记本电脑如何查看自己的电池损耗情况!
  2. 属于我们的纪念日-相识一周年 - 生活至上,美容至尚!
  3. 日本地铁公益广告 拒绝三俗!
  4. “泡泡玛特乐园”,难逃IP大考
  5. Matlab画图小结(二)
  6. tidb vs mysql_一个长耗时SQL在TiDB和Mysql上的耗时测试
  7. QT每日一练day4:ubuntu中使用QT
  8. CSblog的学习记录
  9. 每日算法系列【LeetCode 1006】笨阶乘
  10. Python del:删除对象
  11. 防腐投加器需要加盐吗_什么情况下需要往鱼缸里加盐?盐有什么作用?
  12. ssm酒店预订系统ssm酒店管理系统民宿预订ssm酒店客房预订系统SSM客房预订系统
  13. 计算机课程设计红绿灯,PLC十字路口红绿灯课程设计(梯形图).doc
  14. 通信原理及系统系列33——无线信道(快衰落)
  15. 我用scratch做了个二分查找
  16. 【opencv3】滑动条调节RGB颜色阈值并输出滑动条的值
  17. matlab中如何转动三维图_MATLAB小技巧之:绕任意空间轴旋转三维图形
  18. Windows环境下安装PyMySQL(已安装Anaconda)
  19. Autoform R7零基础初学分析视频教程
  20. ES6-正则的扩展-u、y修饰符

热门文章

  1. 东京攻略(一):计划与现实
  2. ElasticSearch进阶(五)MetricBeat的简单使用
  3. 13号线ab线规划图_有图有真相,北京13号地铁将拆分为AB两条线
  4. ps模糊照片变清晰步骤东方逐梦
  5. Gopher协议与ssrf
  6. 国外最顶级的人工智能网站资源
  7. ContextCapture | 无人机倾斜摄影技术在农村不动产确权中的应用
  8. 看图猜成语小程序设计与实现(小程序+PHP)
  9. MAC 谷歌浏览器提示您的连接不是私密连接,没有继续访问选项
  10. STM32内部ADC基准电压计算方法