web-dev-qa-db-ja.com

MariaDB 10.1サーバーは更新後に起動しません

今日、apt-get upgradeを実行しましたが、MariaDB 10.1 ob Ubuntu Server 14.04のアップグレードに失敗しました。

Setting up libmysqlclient18 (10.1.9+maria-1~trusty) ...
Setting up libmariadbclient18 (10.1.9+maria-1~trusty) ...
Setting up mariadb-client-core-10.1 (10.1.9+maria-1~trusty) ...
Setting up mariadb-client-10.1 (10.1.9+maria-1~trusty) ...
Setting up mariadb-server-core-10.1 (10.1.9+maria-1~trusty) ...
Setting up mariadb-server-10.1 (10.1.9+maria-1~trusty) ...
Installing new version of config file /etc/init.d/mysql ...

 * Stopping MariaDB database server mysqld [ OK ] 
 * Starting MariaDB database server mysqld [fail] 

invoke-rc.d: initscript mysql, action "start" failed.

dpkg: error processing package mariadb-server-10.1 (--configure):
 subprocess installed post-installation script returned error exit status 1

dpkg: dependency problems prevent configuration of mariadb-server:
 mariadb-server depends on mariadb-server-10.1 (= 10.1.9+maria-1~trusty); however:

  Package mariadb-server-10.1 is not configured yet.

dpkg: error processing package mariadb-server (--configure):
 dependency problems - leaving unconfigured
Processing triggers for ureadahead (0.100.0-16) ...
Processing triggers for libc-bin (2.19-0ubuntu6.6) ...
No apport report written because the error message indicates its a followup error from a previous failure. 

Errors were encountered while processing:

 mariadb-server-10.1
 mariadb-server
E: Sub-process /usr/bin/dpkg returned an error code (1)

これは悪夢であり、データベースにアクセスできなくなりました。削除してパージし、再度インストールしようとしましたが、常に同じエラーで終了します。

/var/log/syslogによると、これは(service mysql restartを実行した後)ソケットとmysqldに関係しています:

mysqld: 151127 11:51:07 [ERROR] mysqld got signal 11 ;

...

mysqld_safe: mysqld from pid file /var/run/mysqld/mysqld.pid ended
/etc/init.d/mysql[14132]: 0 processes alive and '/usr/bin/mysqladmin --defaults-file=/etc/mysql/debian.cnf ping' resulted in
/etc/init.d/mysql[14132]: #007/usr/bin/mysqladmin: connect to server at 'localhost' failed
/etc/init.d/mysql[14132]: error: 'Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (111 "Connection refused")'
/etc/init.d/mysql[14132]: Check that mysqld is running and that the socket: '/var/run/mysqld/mysqld.sock' exists!

まあ、/var/run/mysqld/mysqld.sockは絶対に存在します。また、なぜ/etc/mysql/debian.cnfの使用について何かを言うのかわかりません-メインのmysql構成ファイルは実際には/etc/mysql/my.cnfである必要がありますか?私は本当にアイデアがありません、新しいものはありがたいです!


アップデート(2015-12-11)

それでも、問題が何であるかを理解できず、アップグレードはまだ機能しません、同じエラーが発生します。 (現在削除されている)回答の一部が言ったように、唯一の解決策はサーバーの古いスナップショットにロールバックすることでした。幸いなことに、データベースの保存は、/var/lib/mysqlから他のスナップショットにすべてをコピーするのと同じくらい簡単でした。

Googleで自分に合ったものを見つけることができなかったので、これに対する解決策があるか、または解決することを願っています。

3
Quasdunk

これが私の問題の解決方法です。サーバーのバックアップがなかったので、MariaDBの「ハードリセット」のようなものです。

最初に、/var/lib/mysqlフォルダーをバックアップしました。/home/ubuntuフォルダーがあり、そこにフォルダーをコピーしていると想定しています。

cp -r /var/lib/mysql /home/ubuntu/

次に、/etc/mysqlフォルダーをバックアップしました。/home/ubuntuフォルダーがあり、そこにフォルダーをコピーすると仮定しています。

mkdir /home/ubuntu/etc_mysql
cp -r /etc/mysql /home/ubuntu/etc_mysql

次に、/var/lib/mysqlおよび/etc/mysqlフォルダーを削除しました

rm -rf /etc/mysql
rm -rf /var/lib/mysql

その後、MariaDBを削除しました。

apt-get purge mariadb-server mariadb-* mysql-*
apt-get autoremove

パージした後、mariadb-serverを再インストールして再構成しました。

apt-get install mariadb-server
mysql_secure_installation

/home/ubuntu/etc_mysqlフォルダーから必要な設定をコピーします。

その後、mysql cliからデータベースとユーザーを作成しました(または、必要に応じて)

最後に、/home/ubuntu/mysql/**databaseName**フォルダーを/var/lib/mysql/**databaseName**にコピーしました

cp -r /home/ubuntu/mysql/databaseName /var/lib/mysql/

そして、そのままにしておいたように、データに損失なくアクセスできました。

4
Arda