更新后,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这与套接字和mysqld有关(在运行service mysql restart ):

 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复制到另一个快照一样简单。

我希望有或将会有解决方案,因为我在谷歌找不到任何适合我的东西。

这是我如何解决我的问题,我没有服务器的备份所以我有点“硬重置”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/ 

然后,我可以毫无损失地访问我的数据,就像我离开它一样。