Systemd

mysql 服務在使用者連接期間重新啟動導致服務失敗

  • August 14, 2020

當我重新啟動服務時,我通過 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身份驗證模組有關。

但我不知道如何處理它…

我終於通過使用以下命令以 root 身份登錄解決了這個問題:

sudo mysql -uroot -p

密碼:******

然後退出

mysql> exit

並且服務開始工作(並正常重新啟動)。

看來該服務處於殭屍狀態!儘管報告為未執行systemd但它實際上正在執行,因為我能夠使用 root 登錄並發出一個show databases;像魅力一樣工作的命令!

真是奇怪的問題!順便說一句,如果有人知道為什麼我需要sudoroot在數據庫中一樣登錄,而所有其他使用者都通過簡單呼叫mysql客戶端及其憑據登錄。我很想知道為什麼!linux使用者之間似乎有一種奇怪的關係mysql我從來沒有真正理解過的使用者。

引用自:https://unix.stackexchange.com/questions/296872