我系统上的 systemd 似乎尝试启动 MariaDB 两次。第一次尝试成功,所以我的系统没有出现实际问题,但第二次尝试产生了虚假错误消息,因为所有相关文件已被第一个实例锁定。
据我所知,它启动一次,[email protected]
然后启动一次mariadb.service
。的结果systemctl list-units | grep -i maria
是:
● mariadb.service
loaded failed failed MariaDB 10.2 database server
[email protected]
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
答案1
可实例化单元文件解释了发生了什么:/usr/lib/systemd/system/[email protected]
# 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
因此,过去有人确实这样做过,创建了一个名为的 MariaDB 实例multi-user
。这个名字让我觉得这可能是一个错误,而不是故意的。
如何解决问题取决于您是否要保留实例化服务。禁用一个或另一个服务,适当编辑 my.cnf,然后重新启动另一个服务。大多数人不需要实例化 MariaDB 并同时运行多个副本,您可能就是大多数人。