2017-01-13 3 views
1

Недавно я купил новый ноутбук под управлением Ubuntu 16.04.1 LTS (64 бит). Я установил десятки приложений, но один из них дает мне серьезную головную боль, и любая помощь будет с благодарностью получена.Mysql не поддерживается при перезапуске

Я начинаю с чистого листа в отношении MySQL:

sudo apt remove --purge mysql-server mysql-client mysql-common 
sudo apt autoremove 
sudo rm -rf /var/lib/mysql* 
sudo apt install mysql-server 

установить свою базу данных из резервной копии и все работает отлично.

Я отключил питание/питание ноутбука и mysql не работает. Во-первых, демон не работает:

ps -A | grep sql 
2056 ? 00:00:00 mysql-systemd-s 

но что-то я не признаю называется MySQL-Systemd-s работает.

Теперь невозможно использовать MySQL:

mysql -u root -p 
Enter password: 
ERROR 2013 (HY000): Lost connection to MySQL server at 'reading initial 
communication packet', system error: 104 

служба, кажется, невозможно запустить:

service mysql start 
Job for mysql.service failed because the control process exited with 
error code. See "systemctl status mysql.service" and "journalctl -xe" 
for details. 

, но ни один из них является полезным. /var/log/mysql/error.log имеет немного больше информации:


...... 
2017-01-13T21:01:04.926244Z 0 [Warning] Failed to set up SSL because 
of the following SSL library error: SSL context is not usable without 
certificate and private key 
2017-01-13T21:01:04.926272Z 0 [Note] Server hostname (bind-address): 
'127.0.0.1'; port: 3306 
2017-01-13T21:01:04.926288Z 0 [Note] - '127.0.0.1' resolves to 
'127.0.0.1'; 
2017-01-13T21:01:04.926327Z 0 [Note] Server socket created on IP: 
'127.0.0.1'. 
2017-01-13T21:01:04.927774Z 0 [ERROR] Fatal error: mysql.user table is damaged. Please run mysql_upgrade. 
2017-01-13T21:01:04.927897Z 0 [ERROR] Aborting 

Однако рекомендация для запуска mysql_upgrade бесполезно, потому что один не может работать mysql_upgrade, если сервер MySQL не работает! Из-за этой ошибки сервер mysql не работает.

Итак, я удаляю и переустанавливаю все и запускаю mysql_upgrade. Кажется, это завершается без ошибок. Но, снова, когда я запускаю цикл машины, я вернулся без работы mysql.

Я также попытался запустить mysqld с параметрами -skip-grant-tables, но это все еще не позволяет подключиться.

В настоящий момент, каждый раз, когда я перезагружаю свой компьютер, я должен удалить все следы mysql, переустановить mysql, а затем перезагрузить мою базу данных из резервной копии. Это настоящая боль.

Есть ли у кого-нибудь идеи о том, что происходит?

+0

http://stackoverflow.com/questions/5755819/lost-connection-to-mysql-server-at-reading-initial-communication-packet-syste –

+0

Проблема все еще существует (и я все еще разрываю волосы).Однако я обнаружил следующее: mysql выживает при выключении/включении питания, если я не загружаю свою базу данных из резервной копии. Если я загружаю свою базу данных из резервной копии, все работает хорошо, пока не отключится питание/питание, а затем возникнет проблема, описанная выше. –

+0

Это означало бы, что что-то не так с резервной копией, которую я восстанавливаю. Резервная копия была из mysqldump как раз перед тем, как я переключился на новый компьютер и начал: - MySQL dump 10.13. Распространение 5.7.16 для Linux (x86_64) - - Host: localhost База данных: - ----- ------------------------------------------------- - Версия сервера \t 5.7.16-0ubuntu0.16.04.1 /*! 40101 SET @OLD_CHARACTER_SET_CLIENT = @@ CHARACTER_SET_CLIENT * /; /*! 40101 SET @OLD_CHARACTER_SET_RESULTS = @@ CHARACTER_SET_RESULTS * /; /*! 40101 SET @OLD_COLLATION_CONNECTION = @@ COLLATION_CONNECTION * /; –

ответ

0

Проблема, по-видимому, устранена. Подсказка заключалась в том, что mysqld, похоже, выжил при отключении питания/включении питания, если я не восстановил собственную резервную копию базы данных. Это не произошло, если бы я восстановил эту резервную копию.

Как правило, я никогда не смотрю на резервные копии моей базы данных; скорее я просто делаю mysqldump и сохраняю полученный файл в случае дождливого дня.

Учитывая подсказку выше, я взглянул на файл, созданный mysqldump, и уменьшил его до минимального размера, чтобы он просто содержал базу данных, которую я хотел восстановить. Кажется, это трюк.

Я сохранил файл с плохим файлом и играл с разницей, чтобы найти то, что было противно, но еще не нашел его.

Смежные вопросы