`
270585784
  • 浏览: 13811 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

CentOS 7下MySQL服务启动失败的解决思路

 
阅读更多
今天,启动MySQL服务器失败,如下所示:

[root@spark01 ~]# /etc/init.d/mysqld start
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查看服务启动失败的原因

[root@spark01 ~]# systemctl status mysqld.service

复制代码
?.mysqld.service - SYSV: MySQL database server.
   Loaded: loaded (/etc/rc.d/init.d/mysqld)
   Active: failed (Result: exit-code) since Wed 2016-01-20 18:26:57 CST; 40s ago
     Docs: man:systemd-sysv-generator(8)
  Process: 2979 ExecStart=/etc/rc.d/init.d/mysqld start (code=exited, status=1/FAILURE)

Jan 20 18:26:56 spark01 systemd[1]: Starting SYSV: MySQL database server....
Jan 20 18:26:57 spark01 mysqld[2979]: MySQL Daemon failed to start.
Jan 20 18:26:57 spark01 mysqld[2979]: Starting mysqld:  [FAILED]
Jan 20 18:26:57 spark01 systemd[1]: mysqld.service: control process exited, code=exited status=1
Jan 20 18:26:57 spark01 systemd[1]: Failed to start SYSV: MySQL database server..
Jan 20 18:26:57 spark01 systemd[1]: Unit mysqld.service entered failed state.
Jan 20 18:26:57 spark01 systemd[1]: mysqld.service failed.
复制代码
[root@spark01 ~]# journalctl -xe

复制代码
--
-- Unit session-2.scope has begun starting up.
Jan 20 18:26:48 spark01 sshd[2916]: pam_unix(sshd:session): session opened for user spark by (uid=0)
Jan 20 18:26:52 spark01 su[2944]: (to root) spark on pts/1
Jan 20 18:26:52 spark01 su[2944]: pam_unix(su-l:session): session opened for user root by spark(uid=1000)
Jan 20 18:26:56 spark01 polkitd[909]: Registered Authentication Agent for unix-process:2974:117137 (system bus name :1.25
Jan 20 18:26:56 spark01 systemd[1]: Starting SYSV: MySQL database server....
-- Subject: Unit mysqld.service has begun start-up
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit mysqld.service has begun starting up.
Jan 20 18:26:57 spark01 mysqld[2979]: MySQL Daemon failed to start.
Jan 20 18:26:57 spark01 mysqld[2979]: Starting mysqld:  [FAILED]
Jan 20 18:26:57 spark01 systemd[1]: mysqld.service: control process exited, code=exited status=1
Jan 20 18:26:57 spark01 systemd[1]: Failed to start SYSV: MySQL database server..
-- Subject: Unit mysqld.service has failed
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit mysqld.service has failed.
--
-- The result is failed.
Jan 20 18:26:57 spark01 systemd[1]: Unit mysqld.service entered failed state.
Jan 20 18:26:57 spark01 systemd[1]: mysqld.service failed.
Jan 20 18:26:57 spark01 polkitd[909]: Unregistered Authentication Agent for unix-process:2974:117137 (system bus name :1.
复制代码
但,可惜的时,这些信息并不能提供服务启动失败的真正原因。

这时候,不妨打开MySQL的告警日志,毕竟,只要MySQL服务启动,告警日志都会有输出信息的,果然

2016-01-20T10:00:19.935771Z 0 [ERROR] /usr/sbin/mysqld: Can't create/write to file '/var/run/mysqld/mysqld.pid' (Errcode: 2 - No such file or directory)
2016-01-20T10:00:19.935795Z 0 [ERROR] Can't start server: can't create PID file: No such file or directory
160120 18:00:20 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended
MySQL服务在启动的时候,不能创建pid文件。

在终端看一下该目录是否存在,果然,不存在。

于是,创建了/var/run/mysqld/目录,重启MySQL服务

[root@spark01 ~]# mkdir -p /var/run/mysqld/

[root@spark01 ~]# /etc/init.d/mysqld start

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]
依旧报错,重新查看告警日志,有以下输出

2016-01-20T10:28:37.183387Z 0 [ERROR] /usr/sbin/mysqld: Can't create/write to file '/var/run/mysqld/mysqld.pid' (Errcode: 13 - Permission denied)
2016-01-20T10:28:37.183431Z 0 [ERROR] Can't start server: can't create PID file: Permission denied
160120 18:28:37 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended
160120 18:32:06 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
原来,/var/run/mysqld/的属主和属组还是root,mysql并不能在其中创建文件,后修改该目录的属主和属组,启动OK。

[root@spark01 ~]# ls -ld /var/run/mysqld/
drwxr-xr-x 2 root root 40 Jan 20 18:28 /var/run/mysqld/
[root@spark01 ~]# chown mysql.mysql /var/run/mysqld/
[root@spark01 ~]# /etc/init.d/mysqld start
Starting mysqld (via systemctl):                           [  OK  ]


总结:

以前在玩Kubernetes的时候,常遇到启动失败的情况,根据systemctl的提示,通过systemctl status mysqld.service和journalctl -xe命令查看服务启动失败的原因往往并不如人意,反而给了一种错误的暗示,以为这个跟系统有关。其实,通过查看服务的日志,往往更能清晰的知道服务启动失败的原因。
分享到:
评论

相关推荐

    CentOS MySQL启动和关闭命令

    本文将详细介绍CentOS环境下MySQL服务的启动与关闭方法,并对相关命令进行深入解析。 #### 一、MySQL在CentOS中的安装位置 在CentOS系统中,默认情况下MySQL的安装路径为`/usr/local/mysql`。其中,MySQL的启动...

    CentOS7中将Mysql添加为系统服务 - shangyingbin - 博客园.pdf

    这篇博客文章“CentOS7中将Mysql添加为系统服务”介绍了如何手动将自安装的MySQL服务添加到`systemd`中,以便进行自动化管理和维护。 首先,如果你是通过源码包自行安装的MySQL,那么默认情况下,MySQL不会自动添加...

    CentOS 7下MySQL服务启动失败的快速解决方法

    在使用CentOS 7系统时,遇到MySQL服务无法启动的问题可能会对...总之,当遇到MySQL服务在CentOS 7上启动失败时,首先要通过系统日志来定位问题,然后针对性地进行排查和修复。记住,耐心和细致是解决这类问题的关键。

    centos7搭建mysql集群

    本文将详细介绍如何在 CentOS 7 环境下搭建 MySQL 集群,包括整个搭建步骤及部分常见问题的解决方案。 #### 二、环境准备 - **操作系统**: CentOS 7.0 - **硬件配置**: 至少三台服务器 - MGM (Management Server):...

    CentOS 7 安装 MySQL

    CentOS 7 安装 MySQL

    centos7下mysql 5.6离线安装包,附操作手册

    总结来说,离线安装MySQL 5.6在CentOS 7上需要下载RPM包,解决依赖,然后逐个安装RPM文件,并进行安全初始化。附带的操作手册是整个过程的关键,它为用户提供详细的步骤指导,确保无网络环境下的安装也能顺利完成。

    CentOS7环境mysql小版本升级步骤

    在CentOS7环境下,对MySQL的小版本升级是一个关键的维护任务,以确保数据库系统的稳定性和安全性。本文将详细阐述如何从MySQL 5.7.26升级到5.7.31,这是一个典型的二进制文件替换升级方法。以下是具体的步骤: 一、...

    CentOS7安装mysql5.7.19&mysql5;.7.19主从配置(CentOS7)

    提供的文档“CentOS7安装mysql5.7.19.docx”和“mysql5.7.19主从配置(CentOS7).docx”应包含更详细的步骤和可能遇到的问题解决方案,建议仔细阅读以获取完整信息。在实际操作过程中,务必遵循最佳实践,确保系统的...

    CentOs7下mysql5.7的下载安装以及主从同步、双主多从配置详情

    CentOs7 下 Mysql 5.7 的下载安装和主从同步、双主多从配置详解 CentOs 7 是一个流行的 Linux 操作系统,而 Mysql 5.7 是一个广泛使用的关系型数据库管理系统。本文将详细介绍如何在 CentOs 7 下下载安装 Mysql 5.7...

    centos7.0安装mysql

    centos7.0安装mysql centos7.0安装mysql centos7.0安装mysql

    解决CentOS 7安装mysql后3306端口不通.txt

    解决CentOS 7安装mysql后3306端口不通

    CentOS7下mysql5.7.10的安装步骤

    ### CentOS7 下 MySQL 5.7.10 的安装步骤详解 #### 一、环境准备与依赖检查 在正式开始安装 MySQL 5.7.10 之前,我们需要确保 CentOS 7 系统已更新至最新状态,并且系统中没有其他版本的 MySQL 或 MariaDB 存在。...

    centos7安装mysql5.7

    在本地虚拟机的场合,需要更换yum安装网络地址配置文件CentOS-Base.repo 从阿里云服务器下载一份CentOS-Base.repo文件存到本地

    CentOS7下MySQL8的主主互备安装文档和my.cnf配置文件

    首先,我们从【标题】入手,"CentOS7下MySQL8的主主互备安装文档"意味着我们将学习在CentOS7这个Linux发行版上安装MySQL 8.0数据库服务器,并设置主主复制(也称为主备同步),使得两个或多个MySQL实例可以相互备份...

    CentOS下安装mysql

    centos 6.5下安装配置mysql,以及mysql的安全管理和账户管理

    centos7安装mysql文档及安装包

    7. **启动MySQL服务**:安装完成后,启动MySQL服务: ``` sudo systemctl start mysqld ``` 8. **设置开机启动**:确保MySQL在每次系统启动时自动运行: ``` sudo systemctl enable mysqld ``` 9. **安全...

    centos7安装配置mysql5.7教程全

    总结,安装配置MySQL 5.7在CentOS 7上是一个多步骤的过程,包括安装依赖、启动服务、安全配置、远程访问权限设定、日志与性能调整以及数据管理。理解并熟练掌握这些步骤对于管理Linux服务器上的数据库至关重要。在...

    centos7 安装mysql和mysqlclient遇到的坑总结

    安装完成后,启动MySQL服务,CentOS7中使用`systemctl start mysqld.service`。如果在较低版本的系统中,可以使用`service mysqld start`。检查MySQL服务状态则分别使用`systemctl status mysqld.service`或`service...

    CentOs7下 mysql5.7自动备份数据库脚本

    CentOs7下 mysql5.7自动备份数据库脚本

Global site tag (gtag.js) - Google Analytics