Проблемы с debian-sys-maint в MySQL
Скажу честно — я понятия не имею, что это за mysql-пользователь debian-sys-maint в Debian’е, и я даже не пытался это выяснить.Но лично многим моим клиентам он жизнь портит, соответственно — мне тоже.
Из-за него же нормально не получается скриптом /etc/init.d/mysql даже остановить MySQL.
Просто вылазит вот такая ошибка:
Stopping MySQL database server: mysqld. Starting MySQL database server: mysqld. Checking for corrupt, not cleanly closed and upgrade needing tables.. /usr/bin/mysqladmin: connect to server at 'localhost' failed error: 'Access denied for user 'debian-sys-maint'@'localhost' (using password: YES)' debatest:~# /usr/bin/mysqladmin: connect to server at 'localhost' failed error: 'Access denied for user 'debian-sys-maint'@'localhost' (using password: YES)'
Ясно дело, что проблема с паролем этого юзера в БД mysql, но из-за чего случилась эта проблема — это неизвестная переменная, которая нам ничего не говорит о том, зачем вообще нужен этот юзер.
Ладно, как сменить пароль на его «собственный»?
Узнать такой пароль не проблема, он лежит в /etc/mysql/debian.cnf, а в нем строчка с паролем.
Копируем пароль (или задаем новый), заходим под root’ом в mysql и далее:
mysql> use mysql; mysql> GRANT RELOAD, SHUTDOWN, PROCESS, SHOW DATABASES, SUPER, LOCK TABLES ON *.* TO 'debian-sys-maint'@'localhost' IDENTIFIED BY 'тут тот самый пароль'; mysql> GRANT ALL PRIVILEGES ON *.* TO 'debian-sys-maint'@'localhost' IDENTIFIED BY 'оп/ть тот самый пароль' WITH GRANT OPTION; # /etc/init.d/mysql restart
Проблема решена, ждем следующую.
У меня вот такая же проблема. Решение я знал, и быстро все исправил — НО — столкнулся с интересными граблями — пароль из файла /etc/mysql/debian.cnf не берётся. Хоть тресни.
Ввожу те же самые логин-пароль вручную — все нормально. Указываю параметром —defaults-extra-file=/etc/mysql/debian.cnf — говорит, что в доступе отказано.
Добавляю опцию -p, ввожу пароль вручную — работает. Есть идеи? Глупо, смешно, дурная проблема, невозможная, но она есть…
Этого пользователя можно совершенно спокойно просто удалить.
Этот пользователь исп-ся демоном «/etc/init.d/mysql start|stop…» для управления mysql сервером. Для безопасности можно ограничить ему права, оставив ему только «остановку сервера БД». Я изначально удалил его. В итоге после этого не смог остановить сервер. Переустановил mysql пользователь вернулся.