SpecialistOff.NET / Вопросы / Статьи / Фрагменты кода / Резюме / Метки / Помощь / Файлы

Список вопросов Печать

Смена пароля MySQL/MariaDB, если он неизвестен


Метки: mysql mariadb mysqld_safe systemctl 

Ответы

RemiZOffAlex  Создано: 2018-01-29 14:04:10.734563  Обновлено: 2022-07-28 23:49:42.927816

Вариант с mysqld_safe

Запускаем MySQL в режиме отключенной проверки прав доступа

service mysql stop 
mysqld_safe --skip-grant-tables &
mysql -u root

Устанавливаем новый пароль

use mysql; 
UPDATE mysql.user set password=PASSWORD("YOUR-NEW-ROOT-PASSWORD")
WHERE User='root'; delete from mysql.user where User=''; flush privileges; quit

Запускаем MySQL в нормальном режиме

mysqladmin shutdown 
service mysql start
mysql -u root -p

Вариант без mysqld_safe

Запускаем MySQL в режиме отключенной проверки прав доступа

systemctl stop mysqld
systemctl set-environment MYSQLD_OPTS="--skip-grant-tables" systemctl start mysqld mysql -u root

Устанавливаем новый пароль

use mysql; 
UPDATE mysql.user set authentication_string=PASSWORD("YOUR-NEW-ROOT-PASSWORD")
WHERE User='root'; delete from mysql.user where User=''; flush privileges; quit

Запускаем MySQL в нормальном режиме

systemctl stop mysqld
systemctl unset-environment MYSQLD_OPTS
systemctl start mysqld

Вариант для MySQL 8.0

Файл /etc/my.cnf или одна из его частей

[mysqld]
skip-grant-tables
skip-networking

Запускаем MySQL в нормальном режиме

systemctl stop mysql
systemctl start mysql

Полностью удаляем пользователя и пересоздаём его

DROP USER 'root';
create user 'root'@'%' identified by 'BIGPASSWORD';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;

Запускаем MySQL в нормальном режиме

systemctl stop mysql
systemctl start mysql

Возможно будут интересны и другие вопросы