Только что установлен MySQL 8 на сервере ubuntu 20.04.
Я могу войти в систему с помощью mysql -u root, но как бы я ни пытался установить пароль root, когда я снова вхожу в систему, он не запрашивает пароль.
Нужно ли каким-то образом активировать пароли?
попробовал: ALTER USER 'root' @ 'localhost' IDENTIFIED BY 'MyN3wP4ssw0rd'; очистить права доступа;
все прошло нормально , но пароль не включен.
попробовал: ОБНОВИТЬ mysql.user SET пароль = ПАРОЛЬ ("мой-новый-пароль") ГДЕ Пользователь = 'root';
это дает синтаксическую ошибку.
MySQL 8.x не поддерживает разрешить пользователям входить в систему как root
, если у них также нет разрешений на уровне sudo
на сервере. Это часть длинного списка улучшений безопасности, которые были внесены в более свежие выпуски MySQL, чтобы остановить плохую репутацию, которую ядро базы данных получило за последние 15 лет из-за того, что блоггеры создали учетную запись WordPress, используя корень
учетная запись, тогда блог перехватывается «хакерами», тогда вся база данных (и все другие системы, подключенные к той же базе данных) скомпрометированы. Это не только из-за людей, использующих WordPress, но такая практика была чрезмерно распространена в этом сообществе.
Чтобы подключиться к MySQL как root
, вам нужно будет использовать sudo
.Вам не нужно будет вводить пароль, потому что, если у вас есть sudo
, вы уже в значительной степени владеете сервером:
sudo mysql
После подключения вы можете создать для себя учетную запись и предоставить ей все привилегии этой учетной записи. может потребоваться. Например, если вам нужна учетная запись «SysAdmin», вы можете сделать что-то вроде этого:
CREATE USER 'admin'@'localhost' IDENTIFIED WITH mysql_native_password BY 'superSecretPassword!123';
GRANT ALL ON *.* TO 'admin'@'localhost' WITH GRANT OPTION;
Отсюда вы можете подключиться к MySQL обычным способом:
mysql -u admin -p
В идеале, учетная запись root
в MySQL используется только при первой настройке системы или при исправлении чего-то, что пошло не так.