Apache2、MariaDB及Nginx服务无法启动问题求助
Ubuntu服务器Apache2/MariaDB启动故障解决方法
故障现象
启动服务时提示:
Can't connect to MySQL localhost ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/run/mysqld/mysqld.sock' (2)
执行service mysql restart返回:
Job for mysql.service failed because the control process exited with error code. See "systemctl status mysql.service" and "journalctl -xe" for details. root:/home/admin# systemctl status mysql.service ● mysql.service - MySQL Community Server Loaded: loaded (/lib/systemd/system/mysql.service; disabled; vendor preset> Active: failed (Result: exit-code) since Fri 2023-07-21 23:47:07 CEST; 1mi> Process: 5983 ExecStartPre=/usr/share/mysql/mysql-systemd-start pre (code=e> Jul 21 23:47:07 systemd[1]: mysql.service: Scheduled restart job, r> Jul 21 23:47:07 systemd[1]: Stopped MySQL Community Server. Jul 21 23:47:07 systemd[1]: mysql.service: Start request repeated t> Jul 21 23:47:07 systemd[1]: mysql.service: Failed with result 'exit> Jul 21 23:47:07 systemd[1]: Failed to start MySQL Community Server.
执行systemctl status mariadb.service返回:
Warning: The unit file, source configuration file or drop-ins of mariadb.servic> ● mariadb.service Loaded: masked (Reason: Unit mariadb.service is masked.) Drop-In: /etc/systemd/system/mariadb.service.d └─migrated-from-my.cnf-settings.conf Active: inactive (dead) since Fri 2023-07-21 23:42:42 CEST; 26min ago Main PID: 826 (code=exited, status=0/SUCCESS) Status: "MariaDB server is down" Jul 21 23:42:42 mariadbd[826]: 2023-07-21 23:42:42 0 [Note] InnoDB:> Jul 21 23:42:42 mariadbd[826]: 2023-07-21 23:42:42 0 [Note] InnoDB:> Jul 21 23:42:42 mariadbd[826]: 2023-07-21 23:42:42 0 [Note] InnoDB:> Jul 21 23:42:42 mariadbd[826]: 2023-07-21 23:42:42 0 [Note] InnoDB:> Jul 21 23:42:42 mariadbd[826]: 2023-07-21 23:42:42 0 [Note] InnoDB:> Jul 21 23:42:42 mariadbd[826]: 2023-07-21 23:42:42 0 [Note] InnoDB:> Jul 21 23:42:42 mariadbd[826]: 2023-07-21 23:42:42 0 [Note] InnoDB:> Jul 21 23:42:42 mariadbd[826]: 2023-07-21 23:42:42 0 [Note] /usr/sb> Jul 21 23:42:42 systemd[1]: mariadb.service: Succeeded. Jul 21 23:42:42 systemd[1]: Stopped MariaDB 10.5.21 database server. lines 1-19/19 (END)...skipping... Warning: The unit file, source configuration file or drop-ins of mariadb.servic> ● mariadb.service Loaded: masked (Reason: Unit mariadb.service is masked.) Drop-In: /etc/systemd/system/mariadb.service.d └─migrated-from-my.cnf-settings.conf Active: inactive (dead) since Fri 2023-07-21 23:42:42 CEST; 26min ago Main PID: 826 (code=exited, status=0/SUCCESS) Status: "MariaDB server is down" Jul 21 23:42:42 mariadbd[826]: 2023-07-21 23:42:42 0 [Note] InnoDB:> Jul 21 23:42:42 mariadbd[826]: 2023-07-21 23:42:42 0 [Note] InnoDB:> Jul 21 23:42:42 mariadbd[826]: 2023-07-21 23:42:42 0 [Note] InnoDB:> Jul 21 23:42:42 mariadbd[826]: 2023-07-21 23:42:42 0 [Note] InnoDB:> Jul 21 23:42:42 mariadbd[826]: 2023-07-21 23:42:42 0 [Note] InnoDB:> Jul 21 23:42:42 mariadbd[826]: 2023-07-21 23:42:42 0 [Note] InnoDB:> Jul 21 23:42:42 mariadbd[826]: 2023-07-21 23:42:42 0 [Note] InnoDB:> Jul 21 23:42:42 mariadbd[826]: 2023-07-21 23:42:42 0 [Note] /usr/sb> Jul 21 23:42:42 systemd[1]: mariadb.service: Succeeded. Jul 21 23:42:42 systemd[1]: Stopped MariaDB 10.5.21 database server.
解决步骤
1. 解除MariaDB服务的Mask状态
Masked状态会阻止服务启动,先执行解除命令:
systemctl unmask mariadb.service
2. 清理MySQL与MariaDB的冲突残留
Ubuntu环境中MySQL和MariaDB服务易存在冲突,先停用并禁用MySQL服务:
systemctl stop mysql.service systemctl disable mysql.service
3. 修复MariaDB的Systemd配置
处理可能存在的配置冲突文件:
# 备份原配置文件 cp /etc/systemd/system/mariadb.service.d/migrated-from-my.cnf-settings.conf /etc/systemd/system/mariadb.service.d/migrated-from-my.cnf-settings.conf.bak # 删除冲突配置文件 rm /etc/systemd/system/mariadb.service.d/migrated-from-my.cnf-settings.conf # 重新加载Systemd配置 systemctl daemon-reload
4. 修复Socket文件相关问题
针对无法连接/run/mysqld/mysqld.sock的错误,检查并修复目录权限:
# 查看目录权限状态 ls -ld /run/mysqld/ # 若目录不存在则创建并设置正确权限 mkdir -p /run/mysqld/ && chown mysql:mysql /run/mysqld/
5. 启动并启用MariaDB服务
systemctl start mariadb.service systemctl enable mariadb.service
6. 验证MariaDB状态
systemctl status mariadb.service # 测试数据库连接 mysql -u root -p
7. Apache2服务修复
若Apache2仍无法启动,执行以下步骤定位并解决问题:
# 查看服务状态 systemctl status apache2.service # 查看错误日志排查问题 tail -n 20 /var/log/apache2/error.log # 验证配置文件正确性 apache2ctl configtest # 修复配置后重启服务 systemctl restart apache2.service
内容的提问来源于stack exchange,提问作者Spong my bob
相关产品推荐
相关产品推荐

