Если инфорация оказалась интересна и/или полезна, не побрезгуйте, оставьте комментарий ;)

четверг, 17 декабря 2009 г.

Ошибка запуска MySQL-server

Убил на такую простую проблему пол дня.

Ситуация. Ставлю из репозитория MySQL-сервер (5.0.32). Дистрибутив Debian Etch. В процессе установки выдается ошибка, что не удалось завершить настройку пакетов mysql-server и mysql-server-5.0.

apt-get install mysql-server
Выдаются следующие ошибки:
Starting MySQL database server: mysqld . . . . . . . . . . . . . . failed!
invoke-rc.d: initscript mysql, action "start" failed.
dpkg: не удалось обработать параметр mysql-server-5.0 (--configure):
подпроцесс post-installation script возвратил код ошибки 1
dpkg: зависимости пакетов не позволяют настроить пакет mysql-server:
mysql-server зависит от mysql-server-5.0, однако:
Пакет mysql-server-5.0 пока не настроен.
dpkg: не удалось обработать параметр mysql-server (--configure):
проблемы зависимостей -- оставляем не настроенным
При обработке следующих пакетов произошли ошибки:
mysql-server-5.0
mysql-server
E: Sub-process /usr/bin/dpkg returned an error code (1)

Много баг-репортов по этому поводу, но ни одного по делу. Причиной ошибки может быть что угодно. Ни одно из найденных решений (выключение innoDB и т.д.) не помогло.

Логи /var/log/mysql.log и /var/log/mysql.err пусты.

В /var/log/syslog проскакивают такие ни о чем не говорящие ошибки:


Dec 23 10:13:02 km22118 mysqld_safe[25987]: The latest information about MySQL i
s available on the web at
Dec 23 10:13:02 km22118 mysqld_safe[25987]: http://www.mysql.com
Dec 23 10:13:02 km22118 mysqld_safe[25987]: Support MySQL by buying support/lice
nses at http://shop.mysql.com
Dec 23 10:13:02 km22118 mysqld_safe[26033]: ERROR: 1046  No database selected
Dec 23 10:13:02 km22118 mysqld_safe[26033]: 071223 10:13:02 [ERROR] Aborting
Dec 23 10:13:02 km22118 mysqld_safe[26033]:
Dec 23 10:13:02 km22118 mysqld_safe[26033]: 071223 10:13:02 [Note] /usr/sbin/mys
qld: Shutdown complete
Dec 23 10:13:02 km22118 mysqld_safe[26033]:
Dec 23 10:13:02 km22118 mysqld_safe[26117]: started
Dec 23 10:13:02 km22118 mysqld[26123]: 071223 10:13:02  InnoDB: Started; log seq
uence number 0 43655
Dec 23 10:13:02 km22118 mysqld[26123]: 071223 10:13:02 [ERROR] Can't start serve
r: Bind on TCP/IP port: Cannot assign requested address
Dec 23 10:13:02 km22118 mysqld[26123]: 071223 10:13:02 [ERROR] Do you already ha
ve another mysqld server running on port: 3306 ?
Dec 23 10:13:02 km22118 mysqld[26123]: 071223 10:13:02 [ERROR] Aborting
Dec 23 10:13:02 km22118 mysqld[26123]:
Dec 23 10:13:02 km22118 mysqld[26123]: 071223 10:13:02  InnoDB: Starting shutd


Порт никто не занимает. Для диагностики можно выполнить команды (примеры вывода консоли и логов, а также команды ниже взяты из статьи на форуме opennet.ru):

dpkg -l 'mysql*'
netstat -apn|grep 3306
ps ax| grep mysql
ls -ld /var/lib/mysqld
И после всего этого
/etc/init.d/mysql stop
/etc/init.d/mysql start

Ну так вот. если ничего не помогает, если порт свободен, а директории имеют правильных владельцев (согласно совету из приведенной выше статьи, стоит проверить владельца директории /var/run/mysqld/ и выставить, при необходимости, mysql:mysql), то просто проверьте файл /etc/network/interfaces на наличие записи о lo интерфейсе.

auto lo
iface lo inet loopback

Если такой (или подобной) записи нет, то MySQL не сможет запуститься. также можно воспользоваться командой ifconfig (без переметров). В ее выводе должно быть упоминание об интерфейсе lo.

Если же ничего этого нет, то добавляем указанные две строки кода и перегружаем систему. MySQL в моем случае запустился уже при загрузке.

1 комментарий:

Unknown комментирует...

Спасибо! Я больше суток бился и не мог найти решения.