Debian 9にアップグレードした後、apt-get upgrade
を実行しようとすると、この問題が発生します:Failed 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、action "start" failed。 ●mariadb.service-MariaDBデータベースサーバー ロード済み:ロード済み(/lib/systemd/system/mariadb.service; enabled;ベンダープリセット:有効) アクティブ:失敗(結果:exit-code)2017年7月5日水曜日以降: 44:03 CEST; 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 || exit 1(code = exited、status = 0/SUCCESS) Process: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(コード= exited、status = 1/FAILURE) ステータス:「MariaDBサーバーがダウンしています」 Jul 05 15:43:59 v22015121382329682 systemd [1]:MariaDBデータベースサーバーを起動しています。 .. Jul 05 15:44:00 v22015121382329682 mysqld [9713]:2017-07-05 15:44:00 140711653892672 [注意]/usr/sbin/mysqld(mysqld 10.1.23-MariaDB-9 + deb9u1)プロセス9713として開始... Jul 05 15:44:03 v22015121382329682 systemd [1]:mariadb.service:main process exited、code = exited、status = 1/FAILURE Jul 05 15:44:03 v22015121382329682 systemd [1]:MariaDBデータベースサーバーの起動に失敗しました。 Jul 05 15:44:03 v22015121382329682 systemd [1]:mariadb.service:ユニットは障害状態に入りました。 7月5日15:44:03 v22015121382329682 systemd [1]:mariadb.service:「exit-code」という結果で失敗しました。 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 default-mysql-server mysql-server
私はすでにこのチュートリアルを試しましたが、それでも失敗しました: https://askubuntu.com/a/697806/672607
この問題を解決するにはどうすればよいですか?
チュートリアルでは、mysql-serverの代わりにmariadb-serverをインストールする必要があります。 DEBIAN 9のインストールでも同じ問題が発生し、次のコマンドでうまくいきました。
Sudo apt purge mysql*
Sudo apt purge mariadb*
Sudo apt autoremove
Sudo apt autoclean
システムにまだ何かがあるかどうかを確認します。
dpkg -l | grep -e mysql -e mariadb
リストが空の場合は、mariadbサーバーをインストールします。
Sudo apt install mariadb-server
次に、データベースの停止と起動のステータスを確認してみます。
インストール後のステータス:
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
.../..
PIDを確認します。
Sudo more /var/run/mysqld/mysqld.pid
15699
データベースを停止します:
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"
.../...
PIDファイルが存在しないことも確認できます
Sudo more /var/run/mysqld/mysqld.pid
more: stat on /var/run/mysqld/mysqld.pid: No file or folder
データベースを起動します:
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
存在するはずのPIDファイルを確認できます。空のデータベースで役立つ場合があります。データベースに何かがある場合は、最初にバックアップを行う必要があります。
試す
apt dist-upgrade
または
apt install aptitude
aptitude install mariadb-server
aptitudeには非常に強力な依存関係リゾルバーがあります
私はdubisが行ったことを実行し、それが機能しました(おかげで)、zshを使用している人のためにいくつか追加したいと思います。 「*」を使用してコマンドを実行するときは、ワイルドカードをエスケープするために、スターの前に「\」を使用します。例えば:
Sudo apt purge mysql * Sudo apt purge mariadb *