Пытался
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> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
Получение
ОШИБКА 1410 (42000): вам не разрешено создавать пользователя с помощью GRANT.
MySQL (8.0.11.0) имя пользователя / пароль root / root.
mysql
mysql-error-1064
mysql-8.0
Правин
источник
источник
mysql -u root -p
, а затем ввожу пароль root. Потом попробовалGRANT GRANT OPTION ON *.* TO 'root'@'%';
иERROR 1410 (42000): You are not allowed to create a user with GRANT
Ответы:
Начиная с MySQL 8 вы больше не можете (неявно) создавать пользователя с помощью
GRANT
команды. Вместо этого используйте CREATE USER с последующим оператором GRANT :Предупреждение об угрозах безопасности
WITH GRANT OPTION
см.источник
SELECT User, Host FROM mysql.user;
Вместо этого беги .ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
1) Это сработало для меня. Сначала создайте нового пользователя. Пример: Пользователь
foo
с паролемbar
2) Замените приведенный ниже код именем пользователя с «foo».
3) Войдите как пользователь foo
Пароль: бар
4) Убедитесь, что ваше первоначальное соединение с Sequelize установлено на foo с pw bar.
источник
Я вижу много (неправильных) ответов, это так просто:
Примечание: вместо самостоятельно созданного
user
вы можете использоватьroot
для подключения к базе данных. Однако использование учетной записи root по умолчанию для подключения приложения к базе данных не является предпочтительным способом.Альтернативные привилегии (будьте осторожны и помните принцип наименьших привилегий):
Если бы вы каким-то образом столкнулись со следующей ошибкой:
Вам нужно добавить / изменить следующие две строки
/etc/mysql/my.cnf
и перезапустить mysql:источник
GRANT ALL ON
для MySQL 8.0. Также я считаю, что вместо отключенияbind-address
вы можете привязать127.0.0.1
и включить--protocol=tcp
любые команды. Производительность в долгосрочной перспективе также лучше, чем сlocalhost
.Мои характеристики:
Что сработало для меня:
Ответ на оба запроса:
NB: я создал базу данных (db_name) ранее и создавал учетные данные пользователя со всеми привилегиями, предоставленными всем таблицам в БД, вместо использования пользователя root по умолчанию, который я где-то читал, является лучшей практикой.
источник
Указанный пользователь просто не существует в вашем MySQL (поэтому MySQL пытается создать его с помощью GRANT, как это было до версии 8, но не справляется с ограничениями, введенными в этой версии).
MySQL на данный момент довольно тупой, поэтому, если у вас есть 'root' @ 'localhost' и вы пытаетесь предоставить привилегии 'root' @ '%', он рассматривает их как разных пользователей, а не как общее понятие для пользователя root на любом хосте, включая localhost.
Сообщение об ошибке также вводит в заблуждение.
Итак, если вы получаете сообщение об ошибке, проверьте существующих пользователей с помощью чего-то вроде этого
а затем создайте отсутствующего пользователя (как посоветовал Майк) или настройте команду GRANT в соответствии с фактической спецификацией существующего пользователя.
источник
Только мои 2 цента по теме. У меня была такая же проблема при попытке подключиться из MySQL Workbench. Я запускаю виртуальную машину bitnami-mysql, чтобы настроить локальную песочницу для разработки.
В учебнике Bitnami говорится, что нужно запустить команду «Предоставить все привилегии»:
Это явно не сработало, я, наконец, заставил его работать, используя ответ Майка Лишке.
Я думаю, что произошло то, что у пользователя root @% были неправильные учетные данные, связанные с ним. Итак, если вы пытались изменить привилегии пользователя, но безуспешно, попробуйте:
Из консоли Mysql:
Список пользователей (полезно видеть всех ваших пользователей):
Удалить желаемого пользователя:
Создать пользователя и предоставить разрешения:
Выполните эту команду:
Найдите свой файл конфигурации mysql my.cnf и найдите строку, которая выглядит так:
и прокомментируйте его, используя '#':
Затем перезапустите службу mysql.
Надеюсь, это поможет кому-то, у кого такая же проблема!
источник
Это сработало для меня:
источник
Убедитесь, что ваше имя пользователя и домен такие же, как были созданы ранее. Mysql выбирает учетную запись по двум столбцам в таблице пользователей. Если они разные, mysql может подумать, что вы хотите создать новую учетную запись с помощью гранта, который не поддерживается после версии 8.0.
источник
Мои характеристики:
Что сработало для меня:
источник
Ну, у меня была такая же проблема. Даже если в маршруте был указан "%", удаленное подключение невозможно. Теперь, взглянув на
my.ini
файл (файл конфигурации в Windows),bind-address
утверждение было пропущено.Итак ... Я поставил это
bind-address = *
после[mysqld]
и перезапустил службу. Теперь это работает!источник
1. предоставить привилегии
mysql> ПРЕДОСТАВЛЯЙТЕ ВСЕ ПРИВИЛЕГИИ. К 'root' @ '%' С ОПЦИЕЙ GRANT;
mysql> ПРИВИЛЕГИИ ПРОМЫВКИ
2. проверьте таблицу пользователей:
mysql> используйте mysql
mysql> выберите хост, пользователя от пользователя
3.Изменить файл конфигурации
mysql default bind ip : 127.0.0.1, если мы хотим удаленно посещать службы, просто удалите config
4. наконец перезапустите службы
сервисы brew перезапускают mysql
источник
Это может сработать:
источник
У меня была такая же проблема, которая привела меня сюда. В частности, что касается локальной разработки, я хотел обойтись
mysql -u root -p
без нееsudo
. Я не хочу создавать нового пользователя. Я хочу использоватьroot
локальное веб-приложение PHP.Сообщение об ошибке вводит в заблуждение, так как не было ничего плохого с по умолчанию
'root'@'%'
пользовательскими привилегиями.Вместо этого, как несколько человек упомянули в других ответах, решение заключалось в том, чтобы просто установить
bind-address=0.0.0.0
вместоbind-address=127.0.0.1
моей/etc/mysql/mysql.conf.d/mysqld.cnf
конфигурации. В остальном никаких изменений не требовалось.источник
У меня была такая же проблема с CentOS, и это сработало для меня (версия: 8.0.11):
источник