Ubuntu 上的 MariaDB 10.1.16 无法启动:WSREP 无法恢复位置

And*_*ley 2 mysql mariadb ubuntu galera mariadb-10.1

我正在通过德克萨斯大学镜像10.1.16-MariaDB-1~xenial官方 MariaDB apt 存储库中使用 10.1 [stable]

我在 3 台 Ubuntu 16.04 服务器上设置了一个完美运行的 MariaDB Galera 集群。

然后我升级了它们。现在我什么都没有。

升级到 10.1.16 失败,迅速导致整个集群瘫痪。我没有输出,但是 dpkg 在设置mariadb-servermariadb-server-10.1.

我有备份的,所以我从我的服务器上清除MariaDB的/ MySQL的/加莱拉的所有痕迹(包括移除/var/lib/mysql//etc/mysql//var/log/mysql/),并开始了。但是,现在,在每台服务器上进行全新安装后,标准系统启动脚本都不起作用。我怀疑这也是升级过程apt失败的原因。

我已经在我的第一个节点上尝试了以下各项:

galera_new_cluster
service mysql bootstrap
service mysql bootstrap --wsrep-new-cluster
service mysql bootstrap --wsrep-cluster-address="gcomm://"
service mysql start
service mysql start --wsrep-new-cluster
service mysql start --wsrep-cluster-address="gcomm://"
systemctl start mariadb
systemctl start mariadb --wsrep-new-cluster
systemctl start mariadb --wsrep-cluster-address="gcomm://"
Run Code Online (Sandbox Code Playgroud)

每一个都给了我相同的输出:

Job for mariadb.service failed because the control process exited with error code. See "systemctl status mariadb.service" and "journalctl -xe" for details.
Run Code Online (Sandbox Code Playgroud)

systemctl status mariadb.service

? mariadb.service - MariaDB database server
   Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled)
  Drop-In: /etc/systemd/system/mariadb.service.d
           ??migrated-from-my.cnf-settings.conf
   Active: failed (Result: exit-code) since Fri 2016-07-22 13:29:45 CDT; 42s ago
  Process: 10799 ExecStartPre=/bin/sh -c VAR=`/usr/bin/galera_recovery`; [ $? -eq 0 ] &&   systemctl set-environment _WSREP_START_POSITION=$VAR || exit 1 (code=exited, status=1/FAILURE)
  Process: 10794 ExecStartPre=/bin/sh -c systemctl unset-environment _WSREP_START_POSITION (code=exited, status=0/SUCCESS)
 Main PID: 16865 (code=exited, status=0/SUCCESS)

Jul 22 13:29:41 sql2 systemd[1]: Starting MariaDB database server...
Jul 22 13:29:45 sql2 mysqld[10799]: WSREP: Failed to recover position: '2016-07-22 13:29:41 140110745778432 [Note] /usr/sbin/mysqld (mysqld 10.1.16-MariaDB-1~xenial) starting as process 11080 ...'
Jul 22 13:29:45 sql2 systemd[1]: mariadb.service: Control process exited, code=exited status=1
Jul 22 13:29:45 sql2 systemd[1]: Failed to start MariaDB database server.
Jul 22 13:29:45 sql2 systemd[1]: mariadb.service: Unit entered failed state.
Jul 22 13:29:45 sql2 systemd[1]: mariadb.service: Failed with result 'exit-code'.
Run Code Online (Sandbox Code Playgroud)

我现在可以启动服务器的唯一方法是手动执行:

sudo -u mysql mysqld --wsrep-cluster-address='gcomm://'
Run Code Online (Sandbox Code Playgroud)

在第一个节点上,然后:

sudo -u mysql mysqld --wsrep-cluster-address='gcomm://ip1,ip2,ip3'
Run Code Online (Sandbox Code Playgroud)

在另外两个节点上。那行得通,我又有了一个工作集群。但是现在,systemd/systemctl 不知道该服务正在运行。似乎 systemd 启动脚本根本无法使用wsrep-cluster-address我的配置文件中的设置。将其指定为servicesystemctl命令行也不起作用。

我应该如何启动 mariadb?

小智 6

galera_recovery.sh 脚本中存在错误。 https://jira.mariadb.org/browse/MDEV-10396