Изменение пароля MySQL в Debian с помощью учетной записи debian-sys-maint.

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

Вводим новый пароль.


ИСТОЧНИКИ.

Изменение пароля MySQL в Debian.

Ubuntu: Reset debian-sys-maint’s mysql password.