Невозможно установить mysql-сервер в Ubuntu


17

Я не могу установить mysql-сервер на мою машину с Ubuntu 9.10. При использовании apt-get install mysql-server вывод будет таким:

# apt-get install mysql-server

Reading package lists... Done
Building dependency tree
Reading state information... Done

mysql-server is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 120 not upgraded.
2 not fully installed or removed.

After this operation, 0B of additional disk space will be used.
Setting up mysql-server-5.1 (5.1.37-1ubuntu5.4) ...
* Stopping MySQL database server 
    Mysqld    [ OK ]
* Starting MySQL database server 
mysqld [fail]

invoke-rc.d: initscript mysql, action "start" failed.

dpkg: error processing mysql-server-5.1 (--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.1; however:
Package mysql-server-5.1 is not configured yet.

dpkg: error processing mysql-server (--configure):
dependency problems - leaving unconfigured

No apport report written because the error message indicates its a followup error from a previous failure.
Errors were encountered while processing:
mysql-server-5.1
mysql-server  
E: Sub-process /usr/bin/dpkg returned an error code (1)

Я не могу найти удовлетворительное решение этой проблемы нигде. Многие сайты говорят, чтобы переустановить его, но он не работает.

Любая помощь будет оценена.

Спасибо..


Пробовали использовать aptitude? aptitude устанавливает mysql-server-5.1
Chris_O

да .. попробовал это тоже, та же ошибка.
Арихант,

Были очень похожие симптомы при установке mysql-сервера, когда порт 3306 был занят SSH-туннелем. Потребовалось время, чтобы заметить, не ожидал, что что-то подобное сломает установку пакета ...
knowngarkin

Ответы:


26

Это сработало для меня:

apt-get purge mysql-server
apt-get purge mysql-common
rm -rf /var/log/mysql
rm -rf /var/log/mysql.*
rm -rf /var/lib/mysql
rm -rf /etc/mysql
# and then:
apt-get install mysql-server --fix-missing --fix-broken

Хотя это также удалит все зависимости от MySQL.

И это также удалит существующие базы данных, резервное копирование в первую очередь!

Источник .


+1 У меня тоже отлично получилось!
Крис МакКоули

Работал на Ubuntu 12.04 LTS и MySQL 5.5.34.
Хрустящие

+1 тоже сработало Я пробовал apt-get purge mysql-server, но не apt-get purge mysql-common и не работал. Благодарю.
Давиде Верницци

2
ВНИМАНИЕ: это удалить все ваши базы данных, сначала сделайте резервную копию!
Panthro

1
Это работает, спасибо. Когда это не работает, я не знаю, почему это не работает. Когда это работает, я тоже не знаю, почему это работает.
Цянь Чен

5

Несколько предложений:

  • Когда-либо очевидное, убедитесь, что вы работаете от имени пользователя root.
  • Попробуйте выполнить apt-get remove mysql .
  • Затем попробуйте выполнить apt-get purge (вам может понадобиться apt-get purge mysql , иногда aptitude может быть разборчивым).
  • Всегда проверяйте свои логи. Скорее всего, они будут держать ответ почти на все.
  • Также попробуйте выполнить кэш apt-get clear и apt-get clean . Затем попробуйте установить снова.

Или попробуйте это решение, которое я нашел в Google:

Пакет mysql-server-5.1 пытается запустить MySQL после установки пакета, что не удается. Первое, что вам нужно сделать, это аккуратно завершить процесс установки. Есть несколько способов сделать это:

либо исправьте свою конфигурацию MySQL, проверьте, что /etc/init.d/mysql-server работает, и запустите dpkg --configure -a, чтобы завершить процесс установки; или отредактируйте /var/lib/dpkg/info/mysql-server-5.1.postinst и удалите часть, где он запускает сервер (возможно, вызывает /etc/init.d/mysql-server start или около того), затем запустите dpkg - настройте -a, чтобы завершить процесс установки, а затем исправить вашу конфигурацию.


1
Согласитесь с советом очистить установку и повторить попытку
jamespo

это работает!
Arihant

2

MySQL не удалось запустить. Причина, по которой это произошло, должна быть зарегистрирована в /var/log/mysql.log (или это все еще /var/lib/mysql/.err?). Можете ли вы вставить вывод оттуда, и, возможно, мы можем выяснить, что пошло не так.


/var/log/mysql.err и /var/log/mysql.log оба файла пусты.
Arihant

Ниже приводится вывод /usr/local/mysql/clc.err file.clc с именем хоста 20:50:31 mysqld_safe Запуск демона mysqld с базами данных из / var / lib / mysql 110402 20:50:31 [Предупреждение] Не могу создать тестовый файл /var/lib/mysql/clc.lower-test 110402 20:50:31 [Предупреждение] Не удается создать тестовый файл /var/lib/mysql/clc.lower-test 110402 20:50:31 [ОШИБКА ] Неустранимая ошибка: не может измениться для запуска от имени пользователя «mysql»; Пожалуйста, проверьте, что пользователь существует! 110402 20:50:31 [ОШИБКА] Прерывание 110402 20:50:31 [Примечание] / usr / sbin / mysqld: завершение работы 110402 20:50:31 mysqld_safe mysqld из файла pid /var/lib/mysql/clc.pid завершено
Arihant

Может быть, 1) пользователь mysql не существует, или 2) / var / lib / mysql не принадлежит пользователю mysql? Если 2), не забудьте чоун -R.
Биттранс

это запись файла / etc / passwd: «mysql: x: 118: 128: MySQL Server ,,,: / var / lib / mysql: / bin / false». Я уже сделал chown -R mysql / var / lib / mysql ..
Arihant

Это вывод: apt-get purge mysql-server `* Остановка сервера базы данных MySQL mysqld * Запуск сервера базы данных MySQL mysqld [fail] invoke-rc.d: initscript mysql, действие« start »не выполнено. dpkg: обработка ошибок mysql-server-5.1 (--configure): установленный подпроцесс сценарий после установки возвратил состояние завершения ошибки 1 E: Подпроцесс / usr / bin / dpkg возвратил код ошибки (1) ` Я не могу понять, почему это запускает службу mysql-сервера, когда я его удаляю.
Arihant

1

Откройте другую консоль, введите ps aux | grep mys

И убить все, что выглядит так:

egrep -qi ... /etc/mysql/

Это должно позволить завершить установку.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.