升级到 debian 9 后无法启动 MariaDB 数据库服务器

Zok*_*ker 5 debian mariadb

升级到 debian 9 后,我在尝试执行以下操作时遇到此问题apt-get upgradeFailed to start MariaDB database server

这是日志:

设置 mariadb-server-10.1 (10.1.23-9+deb9u1) ...
mariadb.service 的作业失败,因为控制进程退出并显示错误代码。
有关详细信息,请参阅“systemctl status mariadb.service”和“journalctl -xe”。
invoke-rc.d:initscript mysql,操作“启动”失败。
? mariadb.service - MariaDB 数据库服务器
   已加载:已加载(/lib/systemd/system/mariadb.service;已启用;供应商预设:已启用)
   活动:自 CEST 2017-07-05 星期三 15:44:03 起失败(结果:退出代码);9 毫秒前
  进程:9713 ExecStart=/usr/sbin/mysqld $MYSQLD_OPTS $_WSREP_NEW_CLUSTER $_WSREP_START_POSITION (code=exited, status=1/FAILURE)
  进程:9623 ExecStartPre=/bin/sh -c [ ! -e /usr/bin/galera_recovery ] && VAR= || VAR=`/usr/bin/galera_recovery`; [$? -eq 0 ] && systemctl set-environment _WSREP_START_POSITION=$VAR || 退出 1(代码=退出,状态=0/成功)
  进程:9619 ExecStartPre=/bin/sh -c systemctl unset-environment _WSREP_START_POSITION (code=exited, status=0/SUCCESS)
  进程:9616 ExecStartPre=/usr/bin/install -m 755 -o mysql -g root -d /var/run/mysqld (code=exited, status=0/SUCCESS)
 主PID:9713(代码=退出,状态=1/FAILURE)
   状态:“MariaDB 服务器已关闭”

7 月 5 日 15:43:59 v22015121382329682 systemd[1]:启动 MariaDB 数据库服务器...
7 月 5 日 15:44:00 v22015121382329682 mysqld[9713]: 2017-07-05 15:44:00 140711653892672 [注] /usr/sbin/+mysqld (mysqld 109-dea37u9u2d 10.19-dea3.19.19.19.19.19.19.19.19.19.19.19.19.19.19.19.19.19.19.19.19.19.19.19.19.19.19.19.19.19.19.19.19.19.1.14071653889.140711653889.15389.15 ..
Jul 05 15:44:03 v22015121382329682 systemd[1]: mariadb.service: Main process exited, code=exited, status=1/FAILURE
7 月 5 日 15:44:03 v22015121382329682 systemd[1]:无法启动 MariaDB 数据库服务器。
7 月 5 日 15:44:03 v22015121382329682 systemd[1]:mariadb.service:单元进入失败状态。
7 月 5 日 15:44:03 v22015121382329682 systemd[1]:mariadb.service:失败,结果为“退出代码”。
dpkg: 错误处理包 mariadb-server-10.1 (--configure):
 子进程安装后安装脚本返回错误退出状态 1
dpkg:依赖问题阻止了 default-mysql-server 的配置:
 default-mysql-server 依赖于 mariadb-server-10.1;然而:
  包 mariadb-server-10.1 尚未配置。

dpkg: 错误处理包 default-mysql-server (--configure):
 依赖性问题 - 未配置
dpkg:依赖问题阻止了 mysql-server 的配置:
 mysql-server 依赖于 default-mysql-server;然而:
  包 default-mysql-server 尚未配置。

dpkg: 错误处理包 mysql-server (--configure):
 依赖性问题 - 未配置
处理时遇到错误:
 mariadb-server-10.1
 默认-mysql-服务器
 mysql服务器

我已经尝试过本教程,但仍然失败:https : //askubuntu.com/a/697806/672607

我该如何解决这个问题?

dub*_*bis 7

在本教程中,您应该安装 mariadb-server 代替 mysql-server。我在安装 DEBIAN 9 时遇到了同样的问题,这些命令对我有用:

sudo apt purge mysql*
sudo apt purge mariadb*
sudo apt autoremove
sudo apt autoclean
Run Code Online (Sandbox Code Playgroud)

检查系统中是否还有东西:

dpkg -l | grep -e mysql -e mariadb 
Run Code Online (Sandbox Code Playgroud)

如果列表为空,则安装 mariadb 服务器:

sudo apt install mariadb-server
Run Code Online (Sandbox Code Playgroud)

现在尝试检查停止状态并启动数据库:

安装后状态:

sudo systemctl status mysql.service
? mariadb.service - MariaDB database server
   Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled)
   Active: active (running) since Wed 2018-03-21 16:08:49 CET; 2min 1s ago
 Main PID: 15699 (mysqld)
   Status: "Taking your SQL requests now..."
   CGroup: /system.slice/mariadb.service
           ??15699 /usr/sbin/mysqld

.../..
Run Code Online (Sandbox Code Playgroud)

检查PID:

sudo more /var/run/mysqld/mysqld.pid 
15699
Run Code Online (Sandbox Code Playgroud)

停止数据库:

sudo systemctl stop mysql.service
sudo systemctl status mysql.service
? mariadb.service - MariaDB database server
   Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled)
   Active: inactive (dead) since Wed 2018-03-21 16:14:35 CET; 1s ago
 Main PID: 15699 (code=exited, status=0/SUCCESS)
   Status: "MariaDB server is down"

.../...
Run Code Online (Sandbox Code Playgroud)

您也可以检查 PID 文件不存在

sudo more /var/run/mysqld/mysqld.pid 
more: stat on /var/run/mysqld/mysqld.pid: No file or folder
Run Code Online (Sandbox Code Playgroud)

启动数据库:

sudo systemctl start mysql.service
sudo systemctl status mysql.service
? mariadb.service - MariaDB database server
   Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled)
   Active: active (running) since Wed 2018-03-21 16:14:54 CET; 3s ago
  Process: 15911 ExecStartPost=/bin/sh -c systemctl unset-environment _WSREP_START_POSITION (code=exited, status=0/SUCCESS)
  Process: 15908 ExecStartPost=/etc/mysql/debian-start (code=exited, status=0/SUCCESS)
  Process: 15791 ExecStartPre=/bin/sh -c [ ! -e /usr/bin/galera_recovery ] && VAR= ||   VAR=`/usr/bin/galera_recovery`; [ $? -eq 0 ]   && systemctl set-environment _WSREP_S
  Process: 15787 ExecStartPre=/bin/sh -c systemctl unset-environment _WSREP_START_POSITION (code=exited, status=0/SUCCESS)
  Process: 15784 ExecStartPre=/usr/bin/install -m 755 -o mysql -g root -d /var/run/mysqld (code=exited, status=0/SUCCESS)
 Main PID: 15881 (mysqld)
   Status: "Taking your SQL requests now..."
    Tasks: 26 (limit: 4915)
   CGroup: /system.slice/mariadb.service
           ??15881 /usr/sbin/mysqld
Run Code Online (Sandbox Code Playgroud)

您可以检查它应该存在的PID文件。可能对空数据库有所帮助。如果数据库中有内容,您应该先进行备份。