systemd 尝试启动 MariaDB 两次([email protected] 与 mariadb.service)

systemd 尝试启动 MariaDB 两次([email protected] 与 mariadb.service)

我系统上的 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 并同时运行多个副本,您可能就是大多数人。

相关内容