Systemd
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
身份驗證模組有關。但我不知道如何處理它…
我終於通過使用以下命令以 root 身份登錄解決了這個問題:
sudo mysql -uroot -p
密碼:******
然後退出
mysql> exit
並且服務開始工作(並正常重新啟動)。
看來該服務處於殭屍狀態!儘管報告為未執行,
systemd
但它實際上正在執行,因為我能夠使用 root 登錄並發出一個show databases;
像魅力一樣工作的命令!真是奇怪的問題!順便說一句,如果有人知道為什麼我需要
sudo
像root
在數據庫中一樣登錄,而所有其他使用者都通過簡單呼叫mysql
客戶端及其憑據登錄。我很想知道為什麼!linux使用者之間似乎有一種奇怪的關係mysql
我從來沒有真正理解過的使用者。