Fedora
systemd 嘗試啟動 MariaDB 兩次(mariadb@multi-user.service vs mariadb.service)
我係統上的 systemd 似乎試圖啟動 MariaDB 兩次。第一次嘗試成功,所以我的系統沒有真正的問題,但第二次嘗試會產生虛假的錯誤消息,因為所有相關文件都已被第一個實例鎖定。
據我所知,它開始一次
mariadb@multi-user.service
又一次mariadb.service
。結果systemctl list-units | grep -i maria
是:● mariadb.service loaded failed failed MariaDB 10.2 database server mariadb@multi-user.service loaded active running MariaDB 10.2 database server system-mariadb.slice loaded active active system-mariadb.slice
我猜如果我告訴 systemd 禁用,一切都會好起來的
mariadb.service
,但我不想猜測。我的系統是 Fedora 28。安裝的 MairaDB 包是:
mariadb-config-10.2.16-1.fc28.x86_64 mariadb-rocksdb-engine-10.2.16-1.fc28.x86_64 mariadb-backup-10.2.16-1.fc28.x86_64 mariadb-10.2.16-1.fc28.x86_64 mariadb-cracklib-password-check-10.2.16-1.fc28.x86_64 mariadb-connector-c-3.0.5-1.fc28.x86_64 mariadb-server-10.2.16-1.fc28.x86_64 mariadb-common-10.2.16-1.fc28.x86_64 mariadb-server-utils-10.2.16-1.fc28.x86_64 mariadb-tokudb-engine-10.2.16-1.fc28.x86_64 mariadb-gssapi-server-10.2.16-1.fc28.x86_64 mariadb-errmsg-10.2.16-1.fc28.x86_64
可實例化的單元文件
/usr/lib/systemd/system/mariadb@.service
解釋了發生了什麼:# Multi instance version of mariadb. For if you run mutiple verions at once. # Also used for mariadb@bootstrap to bootstrap Galera. # # To use multi instance variant, use [mysqld.INSTANCENAME] as sections in my.cnf # and start the service via: # systemctl start mariadb@{instancename}.server
所以,過去有人正是這樣做的,創建了一個名為
multi-user
. 這個名字向我暗示這可能是一個錯誤,而不是故意的。您如何解決問題取決於您是否要保留實例化的服務。禁用一個或另一個服務,適當地編輯 my.cnf,然後重新啟動另一個服務。大多數人不需要實例化一次執行多個副本的 MariaDB,而您可能是大多數人。