Error code 1410 mysql



Форум пользователей MySQL

Задавайте вопросы, мы ответим

Страниц: 1

#1 03.09.2009 13:12:33

Не работает GRANT 🙁

Уважаемые, может кто в курсе что не так.. Не могу привязать пользователя к базе, чё уже тока не пробовал

Пишу: GRANT ALL ON `users`.`qq` TO ‘qq’ IDENTIFIED BY ’11’
Получаю: #1410 — You are not allowed to create a user with GRANT

Делаю рутом: grant grant option on *.* to ‘имя_юзера’
Лезу в таблицу прав, в столбце Grant_priv стоит Y.

А проблема остаётся.. Баг ли? Сервер 5.0.45, подскажите плз, мож что-то не так делаю.

ЗІ Юзер qq изначально отсутствует.

#2 03.09.2009 13:15:43

Re: Не работает GRANT 🙁

Правильно ли указан хост для юзера? Попробуйте SHOW GRANT под требуемым юзером посмотреть.

#3 03.09.2009 13:17:15

Re: Не работает GRANT 🙁

Хост вообще не указываю нигде. Я так понимаю, проблема ч том, что «create a user with GRANT» и «Юзер qq изначально отсутствует», ща проверю своё предположение

#4 03.09.2009 13:20:09

Re: Не работает GRANT 🙁

Вы, возможно, даете права юзеру qq@’%’, а подключаетесь юзером qq@localhost

#5 03.09.2009 13:21:56

Re: Не работает GRANT 🙁

#1410 — You are not allowed to create a user with GRANT

SQL_MODE стоит в NO_AUTO_CREATE_USER, полагаю?

#6 03.09.2009 13:52:58

Re: Не работает GRANT 🙁

rgbeast написал:

Вы, возможно, даете права юзеру qq@’%’, а подключаетесь юзером qq@localhost

Эммм. а разве localhost не входит в %? Я не указываю хост для юзера, значит берётся %, а с локального хоста эти права обычно доступны.

paulus написал:

SQL_MODE стоит в NO_AUTO_CREATE_USER, полагаю?

Результат SHOW GRANTS под юзером route, который должен создать юзера qq:
GRANT USAGE ON *.* TO ‘route’@’%’ IDENTIFIED BY PASSWORD ‘*E6CC90B878B948C35E92B003C792C46C58C4AF40’ WITH GRANT OPTION
GRANT ALL PRIVILEGES ON `route`.* TO ‘route’@’%’
GRANT ALL PRIVILEGES ON `users`.* TO ‘route’@’%’ WITH GRANT OPTION

Это в панике уже была куча прав добавлена.

Попытка создать юзера, ответ: #1227 — Access denied; you need the CREATE USER privilege for this operation
Пытаюсь добавить привелегию создания юзера: GRANT CREATE USER TO ‘route’
Ответ: #1064 — You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘USER TO ‘route», т.е. сервер такой привилегии вообще не знает :\

ЗЫ Поменял USAGE на ALL PRIVILEGES и проблема прав исчезла. Получается, проблема была в том, что запрос привелегий юзера qq выполнялся при использовании базы `route`, в которой небыло привелегии GRANT. Как-то не логично, ведь юзера qq я привязывал к базе `users`, в которой есть привелегия GRANT, по идее должно быть всё равно в какой базе выполняется запрос.

В таком случае меня только интересует пример запроса создания юзера, почему сервер не знает CREATE USER?

Источник

How to grant all privileges to root user in MySQL 8.0

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘IDENTIFIED BY ‘root’ WITH GRANT OPTION’ at line 1.

Note: The same is working when tried in previous versions.

ERROR 1410 (42000): You are not allowed to create a user with GRANT

MySQL (8.0.11.0) username/password is root/root.

24 Answers 24

Starting with MySQL 8 you no longer can (implicitly) create a user using the GRANT command. Use CREATE USER instead, followed by the GRANT statement:

Caution about the security risks about WITH GRANT OPTION , see:

I see a lot of (wrong) answers, it is just as simple as this:

Note: instead of a self-created user you can use root to connect to the database. However, using the default root account to let an application connect to the database is not the preferred way. Alternative privileges can be applied as follows (be careful and remember the least-privilege principle):

If you would somehow run into the following error:

ERROR 1130 (HY000): Host ‘1.2.3.4’ is not allowed to connect to this MySQL server

You need add/change the following two lines in /etc/mysql/my.cnf and restart mysql:

Читайте также:  Php curl error 60 ssl certificate problem unable to get local issuer certificate

You could run into the following error, which is a bit confusing:

ERROR 1410 (42000): You are not allowed to create a user with GRANT

This means that either the user does not exist at all OR that the user@host combination does not exist. You can easily check for this with the following command:

1) This worked for me. First, create a new user. Example: User foo with password bar

2) Replace the below code with a username with ‘foo’.

Note: database_name is the database that you want to have privileges, . means all on all

3) Login as user foo

4) Make sure your initial connection from Sequelize is set to foo with pw bar.

Just my 2 cents on the subject. I was having the exact same issue with trying to connect from MySQL Workbench. I’m running a bitnami-mysql virtual machine to set up a local sandbox for development.

Bitnami’s tutorial said to run the ‘Grant All Privileges’ command:

This was clearly not working, I finally got it to work using Mike Lischke’s answer.

What I think happened was that the root@% user had the wrong credentials associated to it. So if you’ve tried to modify the user’s privileges and with no luck try:

  1. Dropping the user.
  2. Create the user again.
  3. Make sure you have the correct binding on your MySQL config file. In my case I’ve commented the line out since it’s just for a sandbox environment.

1. Dropping the user.

From Mysql Console:

List Users (helpful to see all your users):

Drop Desired User:

2. Create the user again.

Create User and Grant Permissions:

Run this command:

3. Make sure you have the correct binding on your MySQL config file.

Locate your MySQL config file (additional notes at the end). If you want to have MySQL listen for connections on more than one network find the following line on the config file:

and comment it using a ‘#’:

For production environments you might want to use limit the network access (additional notes at the end).

Then restart your MySQL service.

Hope this helps someone having the same issue!

Binding: If you want to know more about this I suggest looking at the following solution How to bind MySQL server to more than one IP address. It basically says you can leave MySQL open and limit connections by using a firewall, or natively if you have MySQL version 8.0.13 and above.

MySQL Config File The file could have different locations depending on your Linux distribution and installation. On my system it was located at ‘/etc/my.cnf’ . Here are other suggested locations:

You can also search for the config locations as shown in this website: How to find locations of MySQL config files.

For those who’ve been confused by CREATE USER ‘root’@’localhost’ when you already have a root account on the server machine, keep in mind that your ‘root’@’localhost’ and ‘root’@’your_remote_ip’ are two different users (same user name, yet different scope) in mysql server. Hence, creating a new user with your_remote_ip postfix will actually create a new valid root user that you can use to access the mysql server from a remote machine.

For example, if you’re using root to connect to your mysql server from a remote machine whose IP is 10.154.10.241 and you want to set a password for the remote root account which is ‘Abcdef123!@#’ , here are steps you would want to follow:

On your mysql server machine, do mysql -u root -p , then enter your password for root to login.

Once in mysql> session, do this to create root user for the remote scope:

Читайте также:  Если машинка выдает ошибку error

After the Query OK message, do this to grant the newly created root user all privileges:

Restart the mysqld service:

Confirm that the server has successfully restarted:

If the steps above were executed without any error, you can now access to the mysql server from a remote machine using root .

Источник

Error code 1410 mysql

Solve Linux (CentOS) MySQL change password: ERROR 1133 (42000): Can’t find any matching row in the user table

Reason: The main reason is to change the passwordNo condition willset password for ‘root’@’localhost’=password(‘MyNewPass4!’);In the codelocalhostmodify%, And databaseHostThe field value is consistent.

mysql grant command error: ERROR 1044 (42000): Access denied for’root’ With All Privileges

http://stackoverflow.com/questions/21714869/error-1044-42000-access-denied-for-root-with-all-privileges First, confirm the current logged in user: The first command returns the user who is tryi.

MySQL8.0 creates a user grant permission error resolution

MySQL8.0 creates a user grant permission error resolution Question 1: 8.0 Version Use the previous creating user and empowerment of a statement to report an error Write an error: the previous version .

ERROR 1044 (42000): Access denied for user ‘root’@’localhost’

A colleague reported that a MySQL5.6 created user could not be authorized, and prompted [ERROR 1044 (42000): Access denied for user’root’@’localhost’]. As follows: The root user should have no authori.

ERROR 1044 (42000): Access denied for user »@’localhost’ to database ‘mysql’

solution 1: 1. Close mysql # service mysqld stop 2. Block permissions # mysqld_safe —skip-grant-tables 3. Open a new terminal for input # mysql -u root my.

Источник

How to grant privileges to users in MySQL 8.0

It seems, that this is a question that regularly shows up in forums or stackoverflow.

To start, let’s highlight the fact that in MySQL 8.0 it’s not any more possible to create a user directly from the GRANT command ( ERROR 1410 (42000): You are not allowed to create a user with GRANT ).

This means that to grant some privileges, the user must be created first.

Let’s create a user ‘user1‘ with ‘ChangeMe‘ as password that the user will have to change:

Let’s try to connect to MySQL using that new created user:

Nothing special, we are connected as expected… but didn’t I explicitly expired the password ?

Yes I did, let’s try any statement:

We must change the password as expected. Let’s change it to ‘MySQL8isGreat‘:

And now we can use MySQL and run any statement we are allowed to do (that we have the privileges for).

It seems I don’t have access to many databases…

The default privilege is very limited:

It’s now time to grant more privileges to our user… but which privileges are available ?

In 8.0.13, they are currently 46 privileges !

To list them all, just run:

You can see that a new user doesn’t have access to the test database anymore:
mysql> use test;
ERROR 1044 (42000): Access denied for user ‘user1’@’%’ to database ‘test’

Let’s allow our user to create tables in the database users1 that we created for him and also allow him to perform the following actions:

  • Alter
  • Create
  • Delete
  • Drop
  • Index
  • Insert
  • Select
  • Update
  • Trigger
  • Alter routine
  • Create routine
  • Execute
  • Create temporary tables

NO NEED TO RUN FLUSH PRIVILEGES !

And in the open session for user1, we can check the granted privileges:

Now let’s imagine we want to have multiple users that will have access to the same database (mydatabase), instead of specifying all the grants for each users, let’s use a common role for all of them. We will call it ‘developer_user‘:

Let’s grant the role to user1:

Now back again in user1‘s session and let’s verify:

Now we would like that every time user1 logs into MySQL, his new role will be set:

Let’s also create a user2 having the default role:

Читайте также:  Save error pages http status 4xx 5xx

And we can immediately test it:

Summary

In summary, now in MySQL 8.0 you cannot create a user from GRANT, you don’t need to run FLUSH PRIVILEGES command (this is effective for a long time already, please forget about it !), you can use ROLES and you have more password management options.

Источник

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

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

Примечание. То же самое работает и в предыдущих версиях.

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

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

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

Предупреждение об угрозах безопасности WITH GRANT OPTION см.

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

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

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

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

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

Я вижу много (неправильных) ответов, это так просто:

Примечание: вместо самостоятельно созданного user вы можете использовать root для подключения к базе данных. Однако использование учетной записи root по умолчанию для подключения приложения к базе данных не является предпочтительным способом.

Альтернативные привилегии (будьте осторожны и помните принцип наименьших привилегий):

Если бы вы каким-то образом столкнулись со следующей ошибкой:

ОШИБКА 1130 (HY000): узлу 1.2.3.4 не разрешено подключаться к этому серверу MySQL.

Вам нужно добавить / изменить следующие две строки /etc/mysql/my.cnf и перезапустить mysql:

Мои характеристики:

Что сработало для меня:

Ответ на оба запроса:

NB: я создал базу данных (db_name) ранее и создавал учетные данные пользователя со всеми привилегиями, предоставленными всем таблицам в БД, вместо использования пользователя root по умолчанию, который я где-то читал, является лучшей практикой.

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

MySQL на данный момент довольно тупой, поэтому, если у вас есть ‘root’ @ ‘localhost’ и вы пытаетесь предоставить привилегии ‘root’ @ ‘%’, он рассматривает их как разных пользователей, а не как общее понятие для пользователя root на любом хосте, включая localhost.

Сообщение об ошибке также вводит в заблуждение.

Итак, если вы получаете сообщение об ошибке, проверьте существующих пользователей с помощью чего-то вроде этого

а затем создайте отсутствующего пользователя (как посоветовал Майк) или настройте команду GRANT в соответствии с фактической спецификацией существующего пользователя.

Только мои 2 цента по теме. У меня была такая же проблема при попытке подключиться из MySQL Workbench. Я запускаю виртуальную машину bitnami-mysql, чтобы настроить локальную песочницу для разработки.

В учебнике Bitnami говорится, что нужно запустить команду «Предоставить все привилегии»:

Это явно не сработало, я, наконец, заставил его работать, используя ответ Майка Лишке.

Я думаю, что произошло то, что у пользователя root @% были неправильные учетные данные, связанные с ним. Итак, если вы пытались изменить привилегии пользователя, но безуспешно, попробуйте:

  1. Удаление пользователя.
  2. Создайте пользователя снова.
  3. Убедитесь, что у вас есть правильная привязка к вашему конфигурационному файлу my.cnf. В моем случае я закомментировал строку, так как она предназначена только для среды песочницы.

Из консоли Mysql:

Список пользователей (полезно видеть всех ваших пользователей):

Удалить желаемого пользователя:

Создать пользователя и предоставить разрешения:

Выполните эту команду:

Найдите свой файл конфигурации mysql my.cnf и найдите строку, которая выглядит так:

и прокомментируйте его, используя ‘#’:

Затем перезапустите службу mysql.

Надеюсь, это поможет кому-то, у кого такая же проблема!

Источник

Оцените статью
toolgir.ru
Adblock
detector