Смена пароля-root для MySQL

Описание процедуры смены пароля-root пользователя и других пользователей MySQL

Чтобы изменить пароль root пользователя MySQL нужно подключение к серверу по SSH.

Подключаемся к MySQL как пользователь root при помощи команды:

mysql –u root –p

Нажимаем Enter, указываем пароль и снова нажимаем Enter;

Выполним следующие команды:

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpass');
quit

После этого пароль будет изменён на newpass.

Данный способ также подходит и для изменений паролей других MySQL пользователей. Для этого в вышеуказанной команде необходимо указать пользователя, для которого меняется пароль (например, вместо root@localhost — dovecot@localhost) и новый пароль.

Сброс root-пароля MySQL

Если mysql root-пароль был утерян, его можно сбросить следующим образом:

Подключаемся к VPS с правами root.

Останавливаем mysql-сервер.

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

service mysql stop

Создадим каталог /var/run/mysqld который будет использоваться mysql для хранения и доступа к файлу сокета и назначим необходимые права:

sudo mkdir -p /var/run/mysqld
sudo chown mysql:mysql /var/run/mysqld

Запустим mysql со следующими параметрами:

sudo /usr/sbin/mysqld --skip-grant-tables --skip-networking &

Проверим, что процесс запущен:

jobs

На этом этапе мы можем получить доступ к mysql без пароля. Входим командой:

mysql -u root

Затем сбросим пароль root следующей последовательностью запросов:

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

mysql> USE mysql;
Database changed

mysql> UPDATE user SET authentication_string=PASSWORD("новый_root_пароль") WHERE User='root';
Query OK, 1 row affected, 1 warning (0.03 sec)
Rows matched: 1  Changed: 1  Warnings: 1

mysql> UPDATE user SET plugin="mysql_native_password" WHERE User='root';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> quit

Новый_root_пароль, мы установили "1111".

Завершим процесс mysqld:

sudo pkill mysqld

Запустим службу mysql:

sudo service mysql start

Теперь мы можем выполнить вход, используя установленный пароль:

mysql -u root --password=1111

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

service mysql stop

Запускаем mysql с ключем --skip-grant-tables в фоновом режиме :

/usr/bin/mysqld_safe --skip-grant-tables --user=root &

Заходим в mysql от пользователя root (пароль запрашиваться не будет):

mysql -u root

Меняем пароль и применяем привилегии:

mysql> UPDATE mysql.user SET Password=PASSWORD('новый_root_пароль') WHERE User='root';
mysql> FLUSH PRIVILEGES;
mysql> exit

На CentOS 7 для остановки mysql-сервера используем команду:

sudo /etc/init.d/mysqld stop

Далее выполняем команду:

sudo mysqld_safe --skip-grant-tables &

Символ & в конце команды означает, что она перейдёт в фоновый режим и мы получим терминал обратно.

Подключаемся к 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:

service mysql stop
service mysql start

CentOS 7

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

Пробуем подключиться к mysql с новым установленным паролем.

Нужна помощь?Наши инженеры бесплатно помогут с любым вопросом за считанные минутыНаписать нам