1. Учетная запись debian-sys-maint.
В системах Debian существует (системный) пользователь MySQL debian-sys-maint, который используется сценариями инициализации системы для управления базой данных mysql, например, для запуска или остановки сервера mysql, проверки состояния. Пароль этого пользователя сохраняется в файле /etc/mysql/debian.cnf.
Файл выглядит следующим образом:
# Automatically generated for Debian scripts. DO NOT TOUCH!
[client]
host = localhost
user = debian-sys-maint
password = <password>
socket = /var/run/mysqld/mysqld.sock
[mysql_upgrade]
host = localhost
user = debian-sys-maint
password = <password>
socket = /var/run/mysqld/mysqld.sock
basedir = /usr
Если этот пароль не совпадает с фактическим паролем на сервере mysql, сценарии инициализации mysql не будут выполнены:
# /etc/init.d/mysql restart
* Остановка сервера базы данных MySQL mysqld [ fail ]
* Запуск MySQL-сервера базы данных mysqld [ OK ]
# /etc/init.d/mysql status
/ usr / bin / mysqladmin: подключение к серверу в ‘ localhost ‘ не удалось
error: ‘Доступ запрещен для пользователя’ debian-sys-maint ‘@’ localhost ‘(с использованием пароля: YES)’
Кроме того, попытка обновления сервера mysql завершится с ошибкой, например:
Fehler traten auf beim Bearbeiten von:
/ var / cache / apt / archives / mysql- server — 5.1 _5.1.37-1ubuntu5.1_i386.deb
E: Подпроцесс / usr / bin / dpkg возвращает код ошибки ( 1 )
Чтобы устранить проблему, вам необходимо обновить пароль mysql для пользователя debian-sys-maint. Откроем файл /etc/mysql/debian.cnf:
# nano /etc/mysql/debian.cnf
[client]
host = localhost
user = debian-sys-maint
password = phV6nItAKmaltygX
socket = /var/run/mysqld/mysqld.sock
[mysql_upgrade]
user = debian-sys-maint
password = phV6nItAKmaltygX
socket = /var/run/mysqld/mysqld.sock
basedir = /usr
Запишем пароль password = phV6nItAKmaltygX
Обновим пароль на сервере mysql (вам нужен доступ к mysql root):
# mysql -u root -p
# Then type MySQL root password
mysql>GRANT ALL PRIVILEGES ON *.* TO ‘debian-sys-maint’@’localhost’ IDENTIFIED BY ‘<phV6nItAKmaltygX>’;
2. Изменение пароля MySQL в Debian с помощью учетной записи debian-sys-maint.
Если пароль root пользователя сервера БД MySQL по каким то причинам был утерян то его всегда можно восстановить используя системную учетную запись сервера БД debian-sys-maint:
2.1. Получаем пароль.
# nano /etc/mysql/debian.cnf
[client]
host = localhost
user = debian-sys-maint
password = phV6nItAKmaltygX
socket = /var/run/mysqld/mysqld.sock
[mysql_upgrade]
user = debian-sys-maint
password = phV6nItAKmaltygX
socket = /var/run/mysqld/mysqld.sock
basedir = /usr
2.2. Получаем доступ к серверу MySQL.
# mysql -u debian-sys-maint -p
в качестве пароля вводим phV6nItAKmaltygX
2.3. Начинаем работать с базой mysql.
mysql> use mysql;
2.4. Обновляем пароль root пользователя сервера баз данных:
mysql>update user set password=PASSWORD(«newpass«) where User=’root’;
В этой команде необходимо изменить newpass на нужный нам пароль.
2.5. Обновляем привилегии и завершаем работу с сервером MySQL.
mysql>flush privileges;
mysql>quit
2.6. Пробуем получить доступ к серверу используя учетную запись root.
# mysql -u root -p
Вводим новый пароль.
ИСТОЧНИКИ.