Після того, як пароль root користувача [1] MySQL встановлено, його можна змінити. Найбільш простий спосіб це зробити такий:

mysql –u root –p
  • Потім натиснути Enter, вказати пароль і знову натиснути Enter;
  • Виконати такі команди:
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpass');
quit

Після цього пароль буде змінено на newpass.

Цей спосіб також підходить і змінювати паролів інших MySQL користувачів. Для цього у вказаній вище команді необхідно вказати користувача, для якого змінюється пароль (наприклад, замість root@localhostdovecot@localhost ) і новий пароль.

Скидання root-паролю у разі його втрати

Якщо mysql root-пароль був втрачений, його можна скинути так:

  • Підключаємося до VPS з правами root.
  • Зупиняємо MySQL-сервер.

На Debian/Ubuntu для зупинки mysql-сервера використовується команда

/etc/init.d/mysql stop

або

service mysql stop

На CentOS/Fedora

/etc/init.d/mysqld stop

або

service mysqld stop

На CentOS 7

systemctl stop mariadb
  • Далі виконуємо команду:
mysqld_safe --skip-grant-tables &
  • Результат виконання команди буде приблизно наступним:
[1] 5988
Starting mysqld daemon with databases from /var/lib/mysql
mysqld_safe[6025]: started
  • Підключаємось до mysql з правами root. Оскільки mysql запущено в безпечному режимі, пароль для входу не вимагається:
mysql -u root
  • Вибираємо базу даних mysql:
use mysql;
  • Встановлюємо новий mysql root-пароль командою:
update user set password=PASSWORD("новий_root_пароль") where User='root';
  • Перезавантажуємо привілеї:
flush privileges;
  • Відключаємося від mysql:
quit;
  • Зупиняємо і потім знову запускаємо сервер MySQL командами:

Debian/Ubuntu

/etc/init.d/mysql stop
/etc/init.d/mysql start

CentOS/Fedora

/etc/init.d/mysqld stop
/etc/init.d/mysqld start

CentOS 7

systemctl stop mariadb
systemctl start mariadb
  • Пробуємо підключитися до mysql з новим паролем:
mysql -u root –p

На цьому процес відновлення пароля завершено.

Примітки

  1. Пароль root користувача сервера та MySQL можуть відрізнятися один від одного