it-swarm.com.ru

Как предоставить все привилегии пользователю root в MySQL 8.0

Пытался

mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;

Получение

ОШИБКА 1064 (42000): у вас ошибка в синтаксисе SQL; проверьте руководство, что соответствует версии вашего сервера MySQL для правильного синтаксиса для использования рядом с 'IDENTIFIED BY' root 'WITH GRANT OPTION' в строке 1.

Примечание: то же самое работает при попытке в MySQL 5.7

Также попробовал

mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;

Получение

ОШИБКА 1410 (42000): Вам не разрешено создавать пользователя с GRANT

Имя пользователя/пароль MySQL (8.0.11.0) - root/root.

26
Praveen

Начиная с MySQL 8, вы больше не можете (неявно) создавать пользователя с помощью команды GRANT. Вместо этого используйте CREATE USER , а затем оператор GRANT :

mysql> CREATE USER 'root'@'%' IDENTIFIED BY 'root';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
50
Mike Lischke

1) Это сработало для меня. Сначала создайте нового пользователя. Пример: как 'foo' с кодом pw 'bar.enter здесь

> mysql> CREATE USER 'foo'@'localhost' IDENTIFIED WITH mysql_native_password BY 'bar';

2) Замените приведенный ниже код именем пользователя на «foo».

> mysql> GRANT ALL PRIVILEGES ON database_name.* TO'foo'@'localhost';

Примечание: имя_базы_данных - это база данных, для которой вы хотите иметь привилегии,. значит все на всех

3) Войти как пользователь foo

mysql> mysql -u foo -p

Пароль: бар

4) Убедитесь, что ваше первоначальное соединение с Sequelize установлено на foo с pw bar.

5
J. Doe

Ну, у меня просто была такая же проблема. Даже если в маршруте было «%», не удалось подключиться удаленно. Теперь, посмотрев на файл my.ini (файл конфигурации в windows), оператор bind-address был пропущен.

Итак ... Я поставил этот bind-address = * после [mysqld] и перезапустил службу. Теперь это работает!

0
Caos51