Как сбросить пароль пользователя root в mysql 8

задняя часть база данных MySQL Medium

В последнее время многие новобранцы задавались этим вопросом, особенно mysql, установленный автоматически через homebrew, версия которого по умолчанию уже 8.0.Из-за добавления некоторых политик безопасности и других ограничений изменить пароль пользователя будет немного сложнее. , поэтому я просто резюмирую этот пост.

  1. Сначала проверьте информацию о пользователе root в пользовательской таблице базы данных mysql:
select host, user, authentication_string, plugin from user;

хост: IP-адрес «местоположение»%, который позволяет пользователю войти в систему, означает, что он может быть удален; пользователь: имя пользователя текущей базы данных; authentication_string: пароль пользователя, поле пароля и функция password() устарели после mysql 5.7.9; плагин: метод шифрования пароля;

Если вы обнаружите, что в поле authentication_string пользователя root есть содержимое, сначала установите его пустым:

use mysql;
update user set authentication_string='' where user='root';
  1. Перезапустите службу mysql и закройте службу непосредственно в команде Mac:
mysql.server stop

Или убить процесс mysql. Затем запустите службу mysql:

mysql.server start
  1. Войдите в систему с пользователем root, поскольку для параметра authentication_string задано пустое значение, поэтому вы можете войти в систему без пароля:
mysql -u root -p
passwrod:

Не нужно вводить пароль, просто нажмите Enter

  1. Войдите в библиотеку mysql и используйте ALTER для изменения пароля пользователя root:
ALTER user 'root' IDENTIFIED BY '123456' ;

Корень в операторе должен зависеть от того, является ли пользователь корневого пользователя в фактической таблице пользователей root или root @ localhost. Поскольку я изменил пароль в более простой формат, такой как 123456, он может быть не разрешен политикой пароля по умолчанию MySQL 8. Если вы измените его, вы можете сначала изменить политику пароля:

set global validate_password.length = 6 ;

set global validate_password.policy = 'LOW';

FLUSH PRIVILEGES;

Здесь длина пароля изменяется по умолчанию 8 битов на 6 битов, а уровень политики пароля изменяется с среднего на низкий. Если вы хотите просмотреть настройки, связанные с проверкой пароля, вы можете напрямую запрашивать системные переменные:

SHOW VARIABLES LIKE 'validate_password.%';