В случае, если необходимо изменить пароль root-пользователя базы данных, в том числе при его утере, воспользуйтесь следующей инструкцией.
Смена пароля, если текущий пароль утерян
- Подключитесь к серверу по SSH.
- Остановите службу MySQL:
/etc/init.d/mysql stop
- Отредактируйте файл
mysqld.cnf
, чтобы запустить службу без проверки прав доступа. Для этого:
3.1. Откройте файл в редакторе:
nano /etc/mysql/mysql.conf.d/mysqld.cnf
3.2. В секцию [mysqld]
добавьте следующую строку:
skip-grant-tables
Должно получиться примерно так:
3.3. Сохраните изменения (в nano
это выполняется комбинацией Ctrl O -> Enter -> Ctrl X, либо Ctrl X -> Y -> Enter).
- Перезапустите mysql:
service mysql restart
- Снова откройте файл
mysqld.cnf
:
nano /etc/mysql/mysql.conf.d/mysqld.cnf
И удалите добавленную строку. Сохраните изменения.
- Подключитесь к MySQL как root без пароля:
mysql
- Выберите активную БД:
use mysql;
MySQL 5
- Обновите пароль:
UPDATE user SET authentication_string = PASSWORD('ВАШ_НОВЫЙ_ПАРОЛЬ') WHERE User = 'root';
- Примените изменения:
FLUSH PRIVILEGES;
- Выйдите из mysql командой \q.
- Перезапустите службу в обычном режиме:
/etc/init.d/mysql start
- Теперь проверьте, что пароль успешно изменен, подключившись под root с новым паролем. Для этого выполните:
mysql -u root -p
После чего введите ваш новый пароль.
MySQL 8
- Перезагрузите таблицы привилегий:
FLUSH PRIVILEGES;
- Обновите пароль:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'ваш_новый_пароль';
- Примените изменения:
FLUSH PRIVILEGES;
- Выйдите из mysql командой \q.
- Перезапустите службу в обычном режиме:
/etc/init.d/mysql start
- Теперь проверьте, что пароль успешно изменен, подключившись под root с новым паролем. Для этого выполните:
mysql -u root -p
После чего введите ваш новый пароль.
Смена пароля, если текущий пароль известен или не был установлен ранее
Если требуется изменить существующий root-пароль для MySQL либо установить его в случае, когда он не был задан в принципе (это актуально, например, при автоматической установке LAMP при создании сервера — root-пароль MySQL при этом не задается), это можно сделать следующим образом:
- Подключитесь к серверу по SSH.
- Перейдите к управлению MySQL:
Если пароль root не задан, используйте команду:
mysql
Если пароль существует, используйте команду:
mysql -u root -p
После чего введите текущий пароль.
MySQL 5
- Выполните запрос ниже, заменив «пароль» на нужное вам значение:
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('пароль');
- Выйдите из консоли MySQL командой
\q
. - Проверьте изменения, подключившись с новым паролем. Выполните команду:
mysql -u root -p
После чего введите ваш новый пароль.
MySQL 8
- Выполните запрос ниже, заменив «пароль» на нужное вам значение:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'пароль';
- Примените изменения:
FLUSH PRIVILEGES;
- Выйдите из консоли MySQL командой
\q
. - Проверьте изменения, подключившись с новым паролем. Выполните команду:
mysql -u root -p
После чего введите ваш новый пароль.