Сегодня я работал apt-get upgrade
и было обновление для Оби сервер MariaDB 10.1 Ubuntu 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
, нет? Я действительно вне идей, любые новые ценились бы!
Все еще не мог выяснить то, что проблема, и обновление все еще не будет работать, все еще давая ту же ошибку. Как часть из (теперь удаленный) сказанные ответы, единственное решение состояло в том, чтобы откатывать к более старому снимку сервера. К счастью, сохранение базы данных было так же легко как копирование всего от /var/lib/mysql
к другому снимку.
Я надеюсь, что существует или будет решением этого, потому что я ничего не мог найти на Google, который работал на меня.
Вот то, как я решил свою проблему, у меня не было резервного копирования сервера, таким образом, я сортирую "жесткой перезагрузки" MariaDB:
Во-первых, я создал резервную копию моего /var/lib/mysql
папка: я предполагаю, что у меня есть a /home/ubuntu
папка и копирование папки там.
cp -r /var/lib/mysql /home/ubuntu/
Во-вторых, я создал резервную копию моего /etc/mysql
папка: я предполагаю, что у меня есть a /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/
И затем, я мог получить доступ к своим данным без потери, так же, как я оставил его.