Ошибка обновления пакета MYSQL

1120 Мой компьютер завис, и я забыл, что он обновлялся в фоновом режиме, поэтому я перезапустил его. Когда я перезагрузился, я попытался войти (и если я ввел неправильный пароль, он сказал неправильный пароль), но затем экран на секунду стал бы пустым, а затем вернулся к экрану входа. Я загрузился в режим восстановления и запустил менеджер восстановления пакетов. Это помогло мне снова войти в систему. Я запустил sudo apt-get update и sudo apt-get install, чтобы убедиться, что все пакеты были обновлены правильно. Тем не менее, MySQL больше не работает (я не могу включить службу). Когда я пытаюсь sudo apt-get install, вот сообщение об ошибке:

2 not fully installed or removed.
After this operation, 0 B of additional disk space will be used.
Setting up mysql-server-5.5 (5.5.43-0ubuntu0.14.04.1) ...
start: Job failed to start
invoke-rc.d: initscript mysql, action "start" failed.
No apport report written because the error message indicates its a followup error from a previous failure.
                          dpkg: error processing package mysql-server-5.5 (--configure):
 subprocess installed post-installation script returned error exit status 1
dpkg: dependency problems prevent configuration of mysql-server:
 mysql-server depends on mysql-server-5.5; however:
  Package mysql-server-5.5 is not configured yet.

dpkg: error processing package mysql-server (--configure):
 dependency problems - leaving unconfigured
Errors were encountered while processing:
 mysql-server-5.5
 mysql-server
E: Sub-process /usr/bin/dpkg returned an error code (1)

Я также пытался sudo apt-get -f install, но получил то же самое сообщение об ошибке. Мой вопрос заключается в том, как мне исправить проблему и заставить базу данных снова работать, с большой осторожностью, чтобы убедиться, что фактические базы данных / таблицы mysql не будут удалены.

Обновление

После этого ответа я удалил mysql и переустановил.

sudo apt-get clean

sudo apt-get autoclean

sudo apt-get remove --purge mysql-client-5.5 mysql-client-core-5.5 mysql-common mysql-server mysql-server-5.5 mysql-server-core-5.5

sudo apt-get install mysql-server

Последний шаг не сработал (он установлен, но в конце установки он сказал, что пароль root уже установлен и база данных не запустится). Вместо того, чтобы сделать последний шаг в терминале, я попросил webmin установить mysql (как я изначально настраивал базу данных), и база данных запускалась и останавливалась без проблем. За исключением того, что каталог моей базы данных находится на втором жестком диске в /media/D/mysql/, а не в /var/lib/mysql, и работал только гораздо более старый набор файлов, который никогда не удалялся из /var/lib/mysql, когда я копировал их на второй жесткий диск. .

Следуя этим инструкциям , которые я изначально использовал для изменения каталога, я отредактировал соответствующие файлы конфигурации (очевидно, я не копировал файлы на диск D, поскольку они уже есть, я просто отредактировал файлы конфигурации). После того, как я изменил расположение каталога базы данных, база данных больше не будет запускаться.

Вот что в журнале ошибок (терминал просто говорит, что не может запуститься):

50514 16:50:55 [Note] Plugin 'FEDERATED' is disabled.
/usr/sbin/mysqld: Table 'mysql.plugin' doesn't exist
150514 16:50:55 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.
150514 16:50:55 InnoDB: The InnoDB memory heap is disabled
150514 16:50:55 InnoDB: Mutexes and rw_locks use GCC atomic builtins
150514 16:50:55 InnoDB: Compressed tables use zlib 1.2.8
150514 16:50:55 InnoDB: Using Linux native AIO
150514 16:50:55 InnoDB: Initializing buffer pool, size = 128.0M
150514 16:50:55 InnoDB: Completed initialization of buffer pool
150514 16:50:55 InnoDB: highest supported file format is Barracuda.
150514 16:50:55  InnoDB: Waiting for the background threads to start
150514 16:50:56 InnoDB: 5.5.43 started; log sequence number 1595675
150514 16:50:56 [Note] Server hostname (bind-address): '127.0.0.1'; port: 3306
150514 16:50:56 [Note]   - '127.0.0.1' resolves to '127.0.0.1';
150514 16:50:56 [Note] Server socket created on IP: '127.0.0.1'.
150514 16:50:56 [ERROR] Fatal error: Can't open and lock privilege tables: Table 'mysql.host' doesn't exist

Я исследовал ошибку Table 'mysql.host' doesn't exist и нашел этот ответ , я пытался убедиться, что у mysql есть разрешения (см. ниже), но это не сработало.

chown -R mysql /media/D/mysql
chgrp -R mysql /media/D/mysql

Одним из предложений было посмотреть вывод mysqld, он выдает следующую ошибку в терминале:

150514 17:00:55 [Warning] Using unique option prefix key_buffer instead of key_buffer_size is deprecated and will be removed in a future release. Please use the full name instead.
150514 17:00:55 [Note] mysqld (mysqld 5.5.43-0ubuntu0.14.04.1) starting as process 11565 ...
150514 17:00:55 [Warning] Can't create test file /media/D/mysql/computername.lower-test
150514 17:00:55 [Warning] Can't create test file /media/D/mysql/computername.lower-test
mysqld: Can't change dir to '/media/D/mysql/' (Errcode: 13)
150514 17:00:55 [ERROR] Aborting

150514 17:00:55 [Note] mysqld: Shutdown complete

Обновление 2

Я изменил конфигурацию mysql /etc/mysql/my.cnf, и теперь она правильно использует key_buffer_size, и mysqld не запустится без проблем. Однако sudo mysql start выдает следующую ошибку:

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

РЕШЕНО

Так глупо! Фактическое расположение файлов: / media / D_ / mysql, а не / media / D / mysql. А потом, когда я понял это, я также должен был помнить, чтобы внести изменения в профиль AppArmor. Было бы намного проще, если бы в сообщении об ошибке говорилось, что каталог не существует !!!!

2
задан 23 May 2017 в 15:39

1 ответ

Удостоверьтесь Ваш my.cnf, не имеет никаких опций, которые были удержаны от использования. У меня была подобная проблема, потому что я имел default-character-set перечисленный под [mysqld], но в более новой версии mysql это было переименовано к character_set_server. Однако mysql, очень бесполезно сообщенный мне этого путем простого зависания при попытке запустить сервис. И диспетчер пакетов будет обычно пытаться остановить и/или запустить сервис при установке новой версии.

Для проверки попытайтесь работать mysqld отдельно. Если существуют проблемы конфигурации, это должно сказать так и сразу умереть.

0
ответ дан 23 May 2017 в 15:39

Другие вопросы по тегам:

Похожие вопросы: