Октябрь, 25, 2007 (17:25)
Недавно возникла необходимость в замене сервера, т. е. было заменено железо, но все настройки и установленный софт надо было сохранить. На сервере стоял Debian Etch 4.0.
На новую машину был установлен тот же Debian 4.0 (но только для платформы amd64), установлен весь требуемый софт. После этого я просто скопировал настройки и другие файлы всех сервисов со старой машины. Все шло гладко, пока не дошло дело до MySQL (версия 5.0.5).
Я не стал делать дамп всех баз, а просто скопировал содержимое /var/lib/mysql. Так как версия сервера не менялась, то все должно работать (так я подумал). После запуска (/etc/init.d/mysql start) MySQL ругнулся:
:/etc/init.d$ /usr/bin/mysqladmin: connect to server at ‘localhost’ failed
error: ‘Access denied for user ‘debian-sys-maint’@'localhost’ (using password: YES)’
Сам сервер работал нормально, но вот ротация логов (и чем там еще debian system maintainance занимается) работать перестала.
Немного погуглив я нашел решение.
Для того, чтобы пользователь debian-sys-maint мог работать после переноса файлов баз данных (в частности базы mysql), нужно изменить его пароль, который генерируется во время установки MySQL. Пароль находится тут: /etc/mysql/debian.cnf в строке password.
Теперь его надо обновить в базе mysql. Для этого заходим в mysql и командуем так:
GRANT ALL PRIVILEGES ON *.* TO ‘debian-sys-maint’@'localhost’ IDENTIFIED BY ‘<password>’ WITH GRANT OPTION;
Ну и затем:
FLUSH PRIVILEGES;
Все! Теперь можно перегрузить MySQL (/etc/init.d/mysql restart) и наслаждаться жизнью=)
Оригинальный пост в блоге
IT-partisan