2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > polkit启动失败_Linux MySQL 常见无法启动或启动异常的解决方案(上)

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

时间:2020-11-20 18:57:45

相关推荐

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

关于本文

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

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

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

•MySQL 配置文件 f 权限问题导致无法启动,错误提示:World-writable config file ‘/etc/f’ 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 配置文件 f 权限问题导致无法启动,错误提示:World-writable config file ‘/etc/f’ is ignored

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

【问题分析】

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

查看 /etc/f 配置文件:

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

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

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

查看文件权限:

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

【解决办法】

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

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

【问题描述】

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

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

【解决办法】

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

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

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

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 无法读取导致无法启动

错误日志:Failedtoopenlog(file‘./mysql-bin.000001’,errno13)

【问题描述】

MySQL 无法启动报错:

StartingMySQL…TheserverquitwithoutupdatingPIDfile[FAILED]/server/mysql/data/test.pid).

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

11071100:00:00[ERROR]Failedtoopenlog(file‘./mysql-bin.000001’,errno13)

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

【解决办法】

首先查询磁盘空间:

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

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

-r———— 1 root root 601 Jul 28 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)sinceWed-01-:26:57CST;40sagoDocs:man:systemd-sysv-generator(8)Process:2979Extart=/etc/rc.d/init.d/mysqld start(code=exited,status=1/FAILURE)Jan:26:56spark01 systemd[1]:StartingSYSV:MySQLdatabase server….Jan:26:57spark01 mysqld[2979]:MySQLDaemonfailed to start.Jan:26:57spark01 mysqld[2979]:Startingmysqld:[FAILED]Jan:26:57spark01 systemd[1]:mysqld.service:control process exited,code=exited status=1Jan:26:57spark01 systemd[1]:Failedto start SYSV:MySQLdatabase server..Jan:26:57spark01 systemd[1]:Unitmysqld.service entered failed state.Jan:26:57spark01 systemd[1]:mysqld.service failed.[~]#journalctl-xeUnit session-2.scopehas begun starting up.Jan:26:48spark01 sshd[2916]:pam_unix(sshd:session):session openedforuser spark by(uid=0)Jan:26:52spark01 su[2944]:(to root)spark on pts/1Jan:26:52spark01 su[2944]:pam_unix(su-l:session):session openedforuser root by spark(uid=1000)Jan:26:56spark01 polkitd[909]:RegisteredAuthenticationAgentforunix-process:2974:117137(system bus name:1.25Jan: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.Jan:26:57spark01 mysqld[2979]:MySQLDaemonfailed to start.Jan:26:57spark01 mysqld[2979]:Startingmysqld:[FAILED]Jan:26:57spark01 systemd[1]:mysqld.service:control process exited,code=exited status=1Jan: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.Jan:26:57spark01 systemd[1]:Unitmysqld.service entered failed state.Jan:26:57spark01 systemd[1]:mysqld.service failed.Jan:26:57spark01 polkitd[909]:UnregisteredAuthenticationAgentforunix-process:2974:117137(system bus name:1.

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

查看 MySQL 的告警日志:

-01-20T10:00:19.935771Z0[ERROR]/usr/sbin/mysqld:Can’t create/write to file‘/var/run/mysqld/mysqld.pid’(Errcode:2-Nosuch fileordirectory)-01-20T10:00:19.935795Z0[ERROR]Can’t start server:can’t create PID file:Nosuch fileordirectory1601: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” fordetails.[FAILED]

查看 MySQL 的告警日志:

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

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

[~]#ls-ld/var/run/mysqld/drwxr-xr-x2root root40Jan: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个问题及解决方案,不知有没有帮到你?更多问题,欢迎留言,下周我们还有后续~

来源:京东云

分享到:

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。