Не удается войти с созданным Пользователем в mysql

используя эту команду

GRANT ALL PRIVILEGES ON *.* to 'brian'@'%' identified by 'password';

Я пытаюсь войти в систему с:

 mysql -u brian -ppassword

ошибка:

ERROR 1045 (28000): Access denied for user 'brian'@'localhost' (using password: YES)

Я делаю это как root, и я попытался очистить привилегии.

Я пробовал это с бесчисленными пользователями, но это, похоже, не работает. Я могу создать пользователя без пароля и логина. Командная строка и от phpmyadmin

также проверьте, был ли пользователь в mysql.пользователь, который он есть.

показать гранты для Брайана показывает:

| GRANT ALL PRIVILEGES ON *.* TO 'brian'@'%' IDENTIFIED BY PASSWORD '*2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19' |

12 ответов


у вас, вероятно, есть эта вечная проблема MySQL, где один из пользователей по умолчанию в пользовательской таблице '' @ localhost, который в конечном итоге отрицает все localhost пользователи далее в таблице. Что бы я сделал, так это mysqldump на mysql база данных и искать эту запись в User таблица; если найдено, удалите его и очистите привилегии.

дополнительные сведения см. В разделе https://dev.mysql.com/doc/refman/5.5/en/connection-access.html.

Это распространенное заблуждение чтобы думать, что для данного имени пользователя все строки, которые явно называют этого пользователя, используются сначала, когда сервер пытается найти соответствие для соединения. Это неправда. Предыдущий пример иллюстрирует это, где соединение от h1.example.net Джеффри сначала сопоставляется не строкой, содержащей "Джеффри" в качестве значения столбца пользователя, а строкой без имени пользователя. в результате, Джеффри аутентифицируется как анонимный пользователь, даже если он определил имя пользователя, подключение.


это проблема, вызванная анонимными пользователями. После установки MySQL я всегда запускаю

shell> mysql_secure_installation 

и выберите, чтобы установить / изменить пароль root, удалить анонимных пользователей, запретить удаленный вход root, удалить тестовую базу данных. Это позволит удалить анонимного пользователя и защитить вашу установку. Это также должно решить вашу проблему.


mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

ни одно из представленных здесь решений не сработало. После загрузки ошибок и проб я понял, что у меня есть специальные символы в пароле. Изменение пароля без специальных символов решило проблему


документы mysql имеют это сказать: (от http://dev.mysql.com/doc/refman/5.1/en/adding-users.html):

две учетные записи имеют имя пользователя monty и пароль some_pass. Обе учетные записи суперпользователя учетные записи с полными правами на все. The 'monty'@'localhost' аккаунт можно использовать только при подключении с локального хоста. The


вы забыли цитаты вокруг Брайана в вашем заявлении о гранте. Попробуйте это так:

GRANT ALL PRIVILEGES ON *.* to 'brian'@'%' identified by 'password';


Я только что создал учетную запись, чтобы обеспечить еще одну возможность для будущих поисковиков:

Это может быть очевидно для опытных пользователей, но мой пароль был сгенерирован случайным образом и содержал "\". Мне потребовалось некоторое время, пока я не узнал, что этот персонаж, похоже, вызывает проблемы, в результате чего я не могу войти в систему.


Я думаю, что Рассел Сильва-это правильно...

Я создал пользователя с помощью

CREATE USER 'username'@'%' PASSWORD='userpassword';

но я не могу войти в эту учетную запись.Консоль сказала мне, что

ERROR 1045 (28000): Access denied for user 'username'@'localhost' (using password: YES)

поэтому я создал пользователя с тем же именем пользователя,за исключением изменения " % " на "localhost", и я мог, наконец, войти в систему как "имя пользователя". Хотя для меня это довольно странно.


в моем случае это было из-за меня, нажав "SSL: требуется SSL" (в phpmyadmin). Когда я изменил его на "REQUIRE NONE", я мог войти в систему.


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

mysql -u brian -ppassword -h 'other_host_than_localhost'

у меня была аналогичная проблема при попытке подключиться к Maria DB, работающей на Ubuntu после обновления до 17.04.

по умолчанию прослушивалось только localhost, 127.0.0.1.

чтобы заставить MySQL / Maria слушать все доступные порты и интерфейсы, мне нужно было явно указать bind-address=0.0.0.0. Я добавил эту строку в конец файла /etc/mysql/my.cnf, то есть

...
[client-server]

# Import all .cnf files from configuration directory

!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mariadb.conf.d/
bind-address=0.0.0.0

затем...

sudo /etc/init.d/mysql restart 

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

  1. удаление тестовой базы данных
  2. удалить анонимный пользователь!--4-->