centos7启动MySQL时候突然进不去Job for mysqld.service failed because the control process exited with error cod

mysql突然进不去了,不知道什魔鬼

[root@localhost ~]# systemctl start mysqld.service

Job for mysqld.service failed because the control process exited with error code. See "sys                                       temctl status mysqld.service" and "journalctl -xe" for details.

根据提示先查看一下,找了好长时间都没找到,百度了一大堆,真能害死人。。。
[root@localhost ~]# journalctl -xe

Sep 27 07:05:08 localhost.localdomain NetworkManager[811]: <info>  [1538046308.8933] dhcp4
Sep 27 07:05:08 localhost.localdomain NetworkManager[811]: <info>  [1538046308.8942] dhcp4
Sep 27 07:05:08 localhost.localdomain NetworkManager[811]: <info>  [1538046308.8952] dhcp4
Sep 27 07:05:08 localhost.localdomain NetworkManager[811]: <info>  [1538046308.8952] dhcp4
Sep 27 07:05:08 localhost.localdomain NetworkManager[811]: <info>  [1538046308.8953] dhcp4
Sep 27 07:05:08 localhost.localdomain NetworkManager[811]: <info>  [1538046308.8953] dhcp4
Sep 27 07:05:08 localhost.localdomain NetworkManager[811]: <info>  [1538046308.8953] dhcp4
Sep 27 07:05:08 localhost.localdomain dbus-daemon[741]: dbus[741]: [system] Activating via
Sep 27 07:05:08 localhost.localdomain dbus[741]: [system] Activating via systemd: service
Sep 27 07:05:08 localhost.localdomain dhclient[935]: bound to 192.168.146.133 -- renewal i
Sep 27 07:05:09 localhost.localdomain systemd[1]: Starting Network Manager Script Dispatch
-- Subject: Unit NetworkManager-dispatcher.service has begun start-up
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit NetworkManager-dispatcher.service has begun starting up.
Sep 27 07:05:09 localhost.localdomain dbus-daemon[741]: dbus[741]: [system] Successfully a
Sep 27 07:05:09 localhost.localdomain dbus[741]: [system] Successfully activated service '
Sep 27 07:05:09 localhost.localdomain systemd[1]: Started Network Manager Script Dispatche
-- Subject: Unit NetworkManager-dispatcher.service has finished start-up
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit NetworkManager-dispatcher.service has finished starting up.
--
-- The start-up result is done.
Sep 27 07:05:09 localhost.localdomain nm-dispatcher[3516]: req:1 'dhcp4-change' [ens33]: n
Sep 27 07:05:09 localhost.localdomain nm-dispatcher[3516]: req:1 'dhcp4-change' [ens33]: s
lines 3173-3200/3200 (END)
Sep 27 07:05:08 localhost.localdomain NetworkManager[811]: <info>  [1538046308.8933] dhcp4 (ens33):   address 1
Sep 27 07:05:08 localhost.localdomain NetworkManager[811]: <info>  [1538046308.8942] dhcp4 (ens33):   plen 24 (
Sep 27 07:05:08 localhost.localdomain NetworkManager[811]: <info>  [1538046308.8952] dhcp4 (ens33):   gateway 1
Sep 27 07:05:08 localhost.localdomain NetworkManager[811]: <info>  [1538046308.8952] dhcp4 (ens33):   lease tim
Sep 27 07:05:08 localhost.localdomain NetworkManager[811]: <info>  [1538046308.8953] dhcp4 (ens33):   nameserve
Sep 27 07:05:08 localhost.localdomain NetworkManager[811]: <info>  [1538046308.8953] dhcp4 (ens33):   domain na
Sep 27 07:05:08 localhost.localdomain NetworkManager[811]: <info>  [1538046308.8953] dhcp4 (ens33): state chang
Sep 27 07:05:08 localhost.localdomain dbus-daemon[741]: dbus[741]: [system] Activating via systemd: service nam
Sep 27 07:05:08 localhost.localdomain dbus[741]: [system] Activating via systemd: service name='org.freedesktop
Sep 27 07:05:08 localhost.localdomain dhclient[935]: bound to 192.168.146.133 -- renewal in 724 seconds.
Sep 27 07:05:09 localhost.localdomain systemd[1]: Starting Network Manager Script Dispatcher Service...
-- Subject: Unit NetworkManager-dispatcher.service has begun start-up
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit NetworkManager-dispatcher.service has begun starting up.
Sep 27 07:05:09 localhost.localdomain dbus-daemon[741]: dbus[741]: [system] Successfully activated service 'org
Sep 27 07:05:09 localhost.localdomain dbus[741]: [system] Successfully activated service 'org.freedesktop.nm_di
Sep 27 07:05:09 localhost.localdomain systemd[1]: Started Network Manager Script Dispatcher Service.
-- Subject: Unit NetworkManager-dispatcher.service has finished start-up
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit NetworkManager-dispatcher.service has finished starting up.
--
-- The start-up result is done.
Sep 27 07:05:09 localhost.localdomain nm-dispatcher[3516]: req:1 'dhcp4-change' [ens33]: new request (4 scripts
Sep 27 07:05:09 localhost.localdomain nm-dispatcher[3516]: req:1 'dhcp4-change' [ens33]: start running ordered
lines 3173-3200/3200 (END)
Sep 27 07:05:08 localhost.localdomain NetworkManager[811]: <info>  [1538046308.8933] dhcp4 (ens33):   address 192.168.14
Sep 27 07:05:08 localhost.localdomain NetworkManager[811]: <info>  [1538046308.8942] dhcp4 (ens33):   plen 24 (255.255.2
Sep 27 07:05:08 localhost.localdomain NetworkManager[811]: <info>  [1538046308.8952] dhcp4 (ens33):   gateway 192.168.14
Sep 27 07:05:08 localhost.localdomain NetworkManager[811]: <info>  [1538046308.8952] dhcp4 (ens33):   lease time 1800
Sep 27 07:05:08 localhost.localdomain NetworkManager[811]: <info>  [1538046308.8953] dhcp4 (ens33):   nameserver '192.16
Sep 27 07:05:08 localhost.localdomain NetworkManager[811]: <info>  [1538046308.8953] dhcp4 (ens33):   domain name 'local
Sep 27 07:05:08 localhost.localdomain NetworkManager[811]: <info>  [1538046308.8953] dhcp4 (ens33): state changed bound
Sep 27 07:05:08 localhost.localdomain dbus-daemon[741]: dbus[741]: [system] Activating via systemd: service name='org.fr
Sep 27 07:05:08 localhost.localdomain dbus[741]: [system] Activating via systemd: service name='org.freedesktop.nm_dispa
Sep 27 07:05:08 localhost.localdomain dhclient[935]: bound to 192.168.146.133 -- renewal in 724 seconds.
Sep 27 07:05:09 localhost.localdomain systemd[1]: Starting Network Manager Script Dispatcher Service...
-- Subject: Unit NetworkManager-dispatcher.service has begun start-up
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit NetworkManager-dispatcher.service has begun starting up.
Sep 27 07:05:09 localhost.localdomain dbus-daemon[741]: dbus[741]: [system] Successfully activated service 'org.freedesk
Sep 27 07:05:09 localhost.localdomain dbus[741]: [system] Successfully activated service 'org.freedesktop.nm_dispatcher'
Sep 27 07:05:09 localhost.localdomain systemd[1]: Started Network Manager Script Dispatcher Service.
-- Subject: Unit NetworkManager-dispatcher.service has finished start-up
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit NetworkManager-dispatcher.service has finished starting up.
--
-- The start-up result is done.
Sep 27 07:05:09 localhost.localdomain nm-dispatcher[3516]: req:1 'dhcp4-change' [ens33]: new request (4 scripts)
Sep 27 07:05:09 localhost.localdomain nm-dispatcher[3516]: req:1 'dhcp4-change' [ens33]: start running ordered scripts..

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

● mysqld.service - MySQL Server
   Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
   Active: failed (Result: exit-code) since Thu 2018-09-27 07:03:47 EDT; 3min 20s ago
     Docs: man:mysqld(8)
           http://dev.mysql.com/doc/refman/en/using-systemd.html
  Process: 3493 ExecStart=/usr/sbin/mysqld $MYSQLD_OPTS (code=exited, status=1/FAILURE)
  Process: 3468 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)
 Main PID: 3493 (code=exited, status=1/FAILURE)
   Status: "SERVER_BOOTING"
    Error: 13 (Permission denied)

Sep 27 07:03:41 localhost.localdomain systemd[1]: Starting MySQL Server...
Sep 27 07:03:47 localhost.localdomain systemd[1]: mysqld.service: main process exited, code=exited, status=1/FAILURE
Sep 27 07:03:47 localhost.localdomain systemd[1]: Failed to start MySQL Server.
Sep 27 07:03:47 localhost.localdomain systemd[1]: Unit mysqld.service entered failed state.
Sep 27 07:03:47 localhost.localdomain systemd[1]: mysqld.service failed.

实在不行,百度说是查看一下日志,出现can’t create test…什么文件,终于找到了,解决MySQL没有权限问题Can't create test file /var/lib/mysql/localhost.lower-test
执行这条命令,权限问题:
真气人。。。
chown -R mysql:mysql /data/mysql
[root@localhost ~]# cat /var/log/mysqld.log

180616 04:28:59 mysqld_safe Logging to '/var/log/mysqld.log'.
180616 04:28:59 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
2018-06-16 04:28:59 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_         timestamp server option (see documentation for more details).
2018-06-16 04:28:59 0 [Note] /usr/sbin/mysqld (mysqld 5.6.40) starting as process 24325 ...
2018-06-16 04:28:59 24325 [Warning] Buffered warning: Changed limits: max_open_files: 1024 (requested 5000)

2018-06-16 04:28:59 24325 [Warning] Buffered warning: Changed limits: table_open_cache: 431 (requested 2000)

2018-06-16 04:28:59 24325 [Note] Plugin 'FEDERATED' is disabled.
2018-06-16 04:28:59 24325 [Note] InnoDB: Using atomics to ref count buffer pool pages
2018-06-16 04:28:59 24325 [Note] InnoDB: The InnoDB memory heap is disabled
2018-06-16 04:28:59 24325 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
2018-06-16 04:28:59 24325 [Note] InnoDB: Memory barrier is not used
2018-06-16 04:28:59 24325 [Note] InnoDB: Compressed tables use zlib 1.2.3
2018-06-16 04:28:59 24325 [Note] InnoDB: Using Linux native AIO
2018-06-16 04:28:59 24325 [Note] InnoDB: Using CPU crc32 instructions
2018-06-16 04:28:59 24325 [Note] InnoDB: Initializing buffer pool, size = 128.0M
2018-06-16 04:28:59 24325 [Note] InnoDB: Completed initialization of buffer pool
2018-06-16 04:28:59 24325 [Note] InnoDB: Highest supported file format is Barracuda.
2018-06-16 04:28:59 24325 [Note] InnoDB: 128 rollback segment(s) are active.
2018-06-16 04:28:59 24325 [Note] InnoDB: Waiting for purge to start
2018-06-16 04:28:59 24325 [Note] InnoDB: 5.6.40 started; log sequence number 1625987
2018-06-16 04:28:59 24325 [Warning] No existing UUID has been found, so we assume that this is the first time that this          server has been started. Generating a new UUID: 516c4ce5-713f-11e8-bffd-000c29f4346c.
2018-06-16 04:28:59 24325 [Note] Server hostname (bind-address): '*'; port: 3306
2018-06-16 04:28:59 24325 [Note] IPv6 is available.
2018-06-16 04:28:59 24325 [Note]   - '::' resolves to '::';
2018-06-16 04:28:59 24325 [Note] Server socket created on IP: '::'.
2018-06-16 04:28:59 24325 [Note] Event Scheduler: Loaded 0 events
2018-06-16 04:28:59 24325 [Note] /usr/sbin/mysqld: ready for connections.
Version: '5.6.40'  socket: '/var/lib/mysql/mysql.sock'  port: 3306  MySQL Community Server (GPL)
180702 04:22:43 mysqld_safe Logging to '/var/log/mysqld.log'.
180702 04:22:44 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
2018-07-02 04:22:44 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_         timestamp server option (see documentation for more details).
2018-07-02 04:22:44 0 [Note] /usr/sbin/mysqld (mysqld 5.6.40) starting as process 1649 ...
2018-07-02 04:22:44 1649 [Warning] Buffered warning: Changed limits: max_open_files: 1024 (requested 5000)

2018-07-02 04:22:44 1649 [Warning] Buffered warning: Changed limits: table_open_cache: 431 (requested 2000)

推荐这位博主MySQL安装详细篇,真的很详细,记录下方便以后查看:https://blog.youkuaiyun.com/weixin_42266606/article/details/80879571

<think>嗯,用户现在遇到了一个问题,就是启动MySQL服务时失败了,提示“Job for mysqld.service failed because the control process exited with error code.”。然后系统建议他们查看systemctl和journalctl的日志。首先,我需要回想一下MySQL服务启动失败的常见原因,以及如何一步步排查和解决这个问题。 用户之前问过如何重启MySQL的Slave,现在这个问题是关于服务启动失败的,可能他们在尝试重启服务或者修改配置后出现了问题。可能他们在修改了my.cnf文件后没有正确配置,导致服务无法启动。或者权限问题,比如数据目录的权限不正确,导致MySQL无法访问相关文件。还有可能是端口被占用,或者磁盘空间不足,内存不足等系统资源问题。 接下来,我需要整理出常见的排查步骤,帮助用户逐步检查。首先,检查错误日志,这是最直接的,可以通过journalctl或者直接查看MySQL的错误日志文件。然后检查配置文件是否有语法错误,特别是如果用户修改过my.cnf的话。数据目录的权限问题也是一个常见点,特别是如果用户迁移了数据或者更改了MySQL的运行用户。端口3306是否被其他进程占用,可以通过netstat或lsof检查。系统资源方面,磁盘空间和内存是否足够。还有SELinux或AppArmor这样的安全模块可能会阻止MySQL访问必要的文件或目录。 另外,用户可能在操作过程中使用了错误的命令,或者依赖的库文件损坏,比如libaio或numactl没有安装。如果是升级了MySQL版本,可能需要重新初始化数据目录,或者处理版本不兼容的问题。如果之前的数据文件损坏,可能需要从备份恢复,或者运行崩溃恢复。 需要把这些步骤用用户能理解的语言组织起来,分步骤说明,每个步骤给出具体的命令和解释。还要提醒用户注意备份数据,避免进一步的数据丢失。同时,提供一些常见错误的解决方法,比如如何修复配置文件中的错误,如何修改数据目录权限,如何释放磁盘空间等。 最后,确保用户知道如何查看日志,因为具体的错误信息可能不同,需要根据日志中的提示来针对性解决。可能用户对Linux系统管理不是很熟悉,所以命令需要详细,并且解释每个步骤的目的,让他们能够跟着操作。</think>以下是解决 MySQL 服务启动失败 `Job for mysqld.service failed...` 的排查与修复指南: --- ### **一、核心排查步骤** #### 1. **查看详细错误日志** 通过系统日志定位失败原因: ```bash # 查看 systemd 日志(重点看最后 20 行) journalctl -xeu mysqld.service --no-pager | tail -n 20 # 直接查看 MySQL 错误日志(默认路径) tail -n 50 /var/log/mysqld.log # 或 /var/log/mysql/error.log ``` #### 2. **常见错误场景与解决方案** ##### **场景 1:配置文件语法错误** ```log [ERROR] Found option without preceding group in config file /etc/my.cnf at line 15! ``` - **修复方法**: 检查 `/etc/my.cnf` 或 `/etc/mysql/mysql.conf.d/mysqld.cnf` 的语法: ```bash # 使用 MySQL 自检工具 mysqld --validate-config ``` - 若报错提示具体行号,修正后重试: ```bash systemctl restart mysqld ``` ##### **场景 2:数据目录权限问题** ```log [ERROR] Could not open file '/var/lib/mysql/ibdata1' for OS error: 13 (Permission denied) ``` - **修复方法**: 确保 MySQL 数据目录权限正确(通常为 `mysql:mysql`): ```bash chown -R mysql:mysql /var/lib/mysql chmod -R 750 /var/lib/mysql systemctl restart mysqld ``` ##### **场景 3:端口冲突** ```log [ERROR] Can't start server: Bind on TCP/IP port: Address already in use ``` - **检查端口占用**: ```bash ss -tulnp | grep 3306 # 或 netstat -tulnp | grep 3306 ``` - 若被其他进程占用,终止冲突进程或修改 MySQL 端口: ```ini # 在 my.cnf 中修改端口 [mysqld] port = 3307 ``` ##### **场景 4:磁盘空间不足** ```log [ERROR] InnoDB: Error in creating tablespace: No space left on device ``` - **检查磁盘使用率**: ```bash df -h # 查看根目录或数据目录所在分区 ``` - 清理无用文件或扩容磁盘。 --- ### **二、进阶排查** #### 1. **安全模块阻止(SELinux/AppArmor)** - **临时禁用 SELinux**(仅测试用): ```bash setenforce 0 systemctl start mysqld ``` - **永久修复**: 根据日志调整 SELinux 策略或添加规则: ```bash audit2allow -a -M mysql_policy # 生成策略模块 semodule -i mysql_policy.pp ``` #### 2. **依赖库缺失** ```log [ERROR] mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file ``` - **安装依赖库**: ```bash # CentOS/RHEL yum install libaio numactl # Ubuntu/Debian apt install libaio1 libnuma1 ``` #### 3. **数据文件损坏** ```log [ERROR] InnoDB: Database page corruption detected ``` - **尝试崩溃恢复**: 在 `my.cnf` 中添加: ```ini [mysqld] innodb_force_recovery = 1 # 从 1 到 6 逐级尝试 ``` - 启动 MySQL 后立即备份数据,**完成后务必移除该配置**。 --- ### **三、重置数据目录(极端情况)** 若数据完全损坏且无备份: ```bash # 停止 MySQL systemctl stop mysqld # 备份旧数据(谨慎操作!) mv /var/lib/mysql /var/lib/mysql_bak # 重新初始化 mysqld --initialize --user=mysql --datadir=/var/lib/mysql # 查看临时密码 grep 'temporary password' /var/log/mysqld.log # 重启服务 systemctl start mysqld ``` --- ### **四、注意事项** 1. **操作前备份数据**: 使用 `mysqldump` 或物理备份工具(如 `xtrabackup`)。 2. **日志分析优先级**: 错误日志中的 `[ERROR]` 行通常直接指向根本原因。 3. **版本兼容性**: 若为 MySQL 升级导致失败,检查版本兼容性文档。 如果提供具体错误日志片段,可进一步精准诊断!
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

phial03

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值