在用户连接期间重新启动 mysql 服务导致服务失败

在用户连接期间重新启动 mysql 服务导致服务失败

我已通过 my.ini 将字符集更改为 utf8,并在执行服务重启时忘记了另一个终端会话中的用户登录。

最初,systemd 报告了在服务仍在运行时停止服务的问题。通过 systemd 重新启动系统后,再也无法启动该服务。

$ sudo service mysql status
● mysql.service - MySQL Community Server
   Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
   Active: activating (start-post) (Result: exit-code)
  Process: 2750 ExecStart=/usr/sbin/mysqld (code=exited, status=1/FAILURE)
  Process: 2747 ExecStartPre=/usr/share/mysql/mysql-systemd-start pre (code=exited, status=0/SUCCESS)
 Main PID: 2750 (code=exited, status=1/FAILURE);         : 2751 (mysql-systemd-s)
    Tasks: 2 (limit: 512)
   CGroup: /system.slice/mysql.service
           └─control
             ├─2751 /bin/bash /usr/share/mysql/mysql-systemd-start post
             └─2838 sleep 1
systemd[1]: Starting MySQL Community Server...
systemd[1]: mysql.service: Main process exited, code=exited, status=1/FAILURE

这是 systemd 报告的服务的当前状态。

另外,当我尝试启动服务时:

$ sudo systemctl start mysql.service

我得到一个失败分析如下journalctl

$ journalctl -xe

-- Unit mysql.service has begun starting up.
 pam_unix(sudo:session): session closed for user root
    user : TTY=pts/0 ; PWD=/var/log/mysql ; USER=root ; COMMAND=/bin/systemctl start mysql.service
 pam_unix(sudo:session): session opened for user root by user(uid=0)
 mysql.service: Main process exited, code=exited, status=1/FAILURE
 pam_unix(cron:session): session opened for user root by (uid=0)
 (root) CMD (  [ -x /usr/lib/php/sessionclean ] && /usr/lib/php/sessionclean)
 pam_unix(cron:session): session closed for user root
 Failed to start MySQL Community Server.
-- Subject: Unit mysql.service has failed
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
...

这表明与身份验证模块有关pam
但我不知道该如何处理...

答案1

我最终通过使用以下命令以 root 身份登录解决了该问题:

sudo mysql -uroot -p
password:******
然后退出
mysql> exit

并且服务开始工作(并正常重新启动)。

看来这项服务是在僵尸状态!尽管报道为不运行systemd实际上正在运行,因为我能够使用 root 登录并发出一个show databases;命令,这就像一个魅力!

确实很奇怪的问题!顺便说一句,如果有人知道为什么我需要使用数据库中的sudo登录方式,而所有其他用户都通过对客户端及其凭据的简单调用来登录。我很想了解为什么! linux用户和用户之间似乎存在着一种我从未真正理解过的奇怪关系。rootmysqlmysql

相关内容