O servidor MariaDB 10.1 não será iniciado após a atualização

3

Hoje corri apt-get upgrade e houve uma atualização para o MariaDB 10.1 ob Ubuntu Server 14.04 que falhou:

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)

Este é um pesadelo, não consigo mais acessar o banco de dados. Eu tentei remover, limpar e instalar novamente, mas sempre termina com o mesmo erro.

De acordo com /var/log/syslog , isso tem algo a ver com sockets e mysqld (depois de executar 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!

Bem, /var/run/mysqld/mysqld.sock absolutamente existe. Além disso, não tenho certeza porque diz algo sobre o uso de /etc/mysql/debian.cnf - meu arquivo de configuração principal do mysql deve ser /etc/mysql/my.cnf , não? Estou realmente sem ideias, quaisquer novas seriam apreciadas!

Atualização (2015-12-11)

Ainda não foi possível descobrir qual é o problema e a atualização ainda não funcionará , ainda com o mesmo erro. Como algumas das respostas (agora excluídas) disseram, a única solução era reverter para um instantâneo mais antigo do servidor. Felizmente, salvar o banco de dados foi tão fácil quanto copiar tudo de /var/lib/mysql para o outro instantâneo.

Espero que exista ou seja uma solução para isso, porque não consegui encontrar nada no Google que funcionasse para mim.

    
por Quasdunk 27.11.2015 / 12:01

1 resposta

4

Veja como resolvi meu problema, eu não tinha um backup do servidor, então eu meio que "Maria":

Primeiro, fiz o backup da minha pasta /var/lib/mysql : Estou assumindo que tenho uma pasta /home/ubuntu e copiei a pasta para lá.

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

Em segundo lugar, fiz o backup da minha pasta /etc/mysql : suponho que eu tenha uma pasta /home/ubuntu e copie a pasta para lá.

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

Em seguida, removi /var/lib/mysql e /etc/mysql pastas

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

Depois disso, expirei o MariaDB:

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

Após a limpeza, re-instalei o mariadb-server e o configurei novamente:

apt-get install mariadb-server
mysql_secure_installation

Copie a configuração que precisar na pasta /home/ubuntu/etc_mysql .

Depois disso, criei meu banco de dados e usuário de mysql cli (ou como você quiser)

Por fim, copiei minha pasta /home/ubuntu/mysql/**databaseName** para /var/lib/mysql/**databaseName**

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

E então, eu poderia acessar meus dados sem perda, assim como deixei.

    
por Arda 12.12.2015 / 15:36