Raspberry-Pi

無法啟動mysqld

  • August 26, 2020

我嘗試啟動mysql後得到以下資訊:

$ sudo systemctl start mysqld
Job for mariadb.service failed because the control process exited with error code.
See "systemctl status mariadb.service" and "journalctl -xe" for details.
[pi@raspi ~]$ systemctl status mysqld
* mariadb.service - MariaDB 10.5.5 database server
    Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; vendor preset: disabled)
    Active: failed (Result: exit-code) since Sun 2020-08-23 08:34:44 PDT; 9s ago
      Docs: man:mariadbd(8)
            https://mariadb.com/kb/en/library/systemd/
   Process: 466 ExecStartPre=/bin/sh -c systemctl unset-environment _WSREP_START_POSITION (code=exited, status=0/SUCCESS)
   Process: 467 ExecStartPre=/bin/sh -c [ ! -e /usr/bin/galera_recovery ] && VAR= ||   VAR=`cd /usr/bin/..; /usr/bin/galera_recovery`; [ $? -eq 0 ]   && systemctl set-environment _WSREP_START_POSITION=$VAR || exit 1 (code=exited, status=0/S>
   Process: 479 ExecStart=/usr/bin/mariadbd $MYSQLD_OPTS $_WSREP_NEW_CLUSTER $_WSREP_START_POSITION (code=exited, status=1/FAILURE)
  Main PID: 479 (code=exited, status=1/FAILURE)
    Status: "MariaDB server is down"

Aug 23 08:34:44 raspi mariadbd[479]: 2020-08-23  8:34:44 0 [ERROR] InnoDB: Upgrade after a crash is not supported. The redo log was created with MariaDB 10.4.14.
Aug 23 08:34:44 raspi mariadbd[479]: 2020-08-23  8:34:44 0 [ERROR] InnoDB: Plugin initialization aborted with error Generic error
Aug 23 08:34:44 raspi mariadbd[479]: 2020-08-23  8:34:44 0 [Note] InnoDB: Starting shutdown...
Aug 23 08:34:44 raspi mariadbd[479]: 2020-08-23  8:34:44 0 [ERROR] Plugin 'InnoDB' init function returned error.
Aug 23 08:34:44 raspi mariadbd[479]: 2020-08-23  8:34:44 0 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
Aug 23 08:34:44 raspi mariadbd[479]: 2020-08-23  8:34:44 0 [ERROR] Unknown/unsupported storage engine: InnoDB
Aug 23 08:34:44 raspi mariadbd[479]: 2020-08-23  8:34:44 0 [ERROR] Aborting
Aug 23 08:34:44 raspi systemd[1]: mariadb.service: Main process exited, code=exited, status=1/FAILURE
Aug 23 08:34:44 raspi systemd[1]: mariadb.service: Failed with result 'exit-code'.
Aug 23 08:34:44 raspi systemd[1]: Failed to start MariaDB 10.5.5 database server.
lines 1-21/21 (END)

我也沒有看到任何syslog-ng資訊/var/log/messages.log……

我不知道發生了什麼,有人可以幫我解決這個問題嗎?:o

正如@tetech 建議的那樣,我應該降級到以前版本的 mariadb 包。所以我嘗試了:

[pi@raspi pkg]$ sudo pacman -U /var/cache/pacman/pkg/mariadb-10.4.14-1-aarch64.pkg.tar.xz 
[sudo] password for pi: 
loading packages...
warning: downgrading package mariadb (10.5.5-1 => 10.4.14-1)
resolving dependencies...
warning: cannot resolve "mariadb-clients=10.4.14", a dependency of "mariadb"
:: The following package cannot be upgraded due to unresolvable dependencies:
     mariadb

:: Do you want to skip the above package for this upgrade? [y/N] n
error: failed to prepare transaction (could not satisfy dependencies)
:: unable to satisfy dependency 'mariadb-clients=10.4.14' required by mariadb
[pi@raspi pkg]$ sudo pacman -U /var/cache/pacman/pkg/mariadb-clients-10.4.14-1-aarch64.pkg.tar.xz 
loading packages...
warning: downgrading package mariadb-clients (10.5.5-1 => 10.4.14-1)
resolving dependencies...
warning: cannot resolve "mariadb-libs=10.4.14", a dependency of "mariadb-clients"
:: The following package cannot be upgraded due to unresolvable dependencies:
     mariadb-clients

:: Do you want to skip the above package for this upgrade? [y/N] 
error: failed to prepare transaction (could not satisfy dependencies)
:: unable to satisfy dependency 'mariadb-libs=10.4.14' required by mariadb-clients
[pi@raspi pkg]$ sudo pacman -U /var/cache/pacman/pkg/mariadb-libs-10.4.14-1-aarch64.pkg.tar.xz    
loading packages...
warning: downgrading package mariadb-libs (10.5.5-1 => 10.4.14-1)
resolving dependencies...
looking for conflicting packages...
error: failed to prepare transaction (could not satisfy dependencies)
:: installing mariadb-libs (10.4.14-1) breaks dependency 'mariadb-libs=10.5.5' required by mariadb-clients
[pi@raspi pkg]$ sudo pacman -U /var/cache/pacman/pkg/mariadb-clients-10.4.14-1-aarch64.pkg.tar.xz 
loading packages...
warning: downgrading package mariadb-clients (10.5.5-1 => 10.4.14-1)
resolving dependencies...
warning: cannot resolve "mariadb-libs=10.4.14", a dependency of "mariadb-clients"
:: The following package cannot be upgraded due to unresolvable dependencies:
     mariadb-clients

:: Do you want to skip the above package for this upgrade? [y/N] 
error: failed to prepare transaction (could not satisfy dependencies)
:: unable to satisfy dependency 'mariadb-libs=10.4.14' required by mariadb-clients

但似乎mariadb-libs是在抱怨mariadb-clients,反之亦然。如何讓 thenm 降級?我現在認為重新初始化我的數據庫可能會更容易……

值得注意的錯誤是InnoDB: Upgrade after a crash is not supported. The redo log was created with MariaDB 10.4.14.

看來您沒有正確停止數據庫然後對其進行升級。

您需要降級到 10.4.14 並進行恢復,或者重新初始化然後恢復升級前的備份。

我在 Manjaro Linux 上的解決方案是sudo pacman -s downgrade然後執行

downgrade mariadb-libs mariadb-clients mariadb

降級還允許您選擇要降級到的版本。超級簡單,像魅力一樣工作。

引用自:https://unix.stackexchange.com/questions/605919