it-swarm.com.ru

Невозможно войти с созданным пользователем в 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.user, который он есть.

Шоу гранты на шоу Брайана:

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

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

Для получения дополнительной информации см. https://dev.mysql.com/doc/refman/5.5/ru/connection-access.html .

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

168
chaos

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

Shell> mysql_secure_installation 

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

40
user2509314
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
20
zinking

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

10
cortopy

Документы mysql имеют следующее: (От http://dev.mysql.com/doc/refman/5.1/en/adding-users.html ):

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

Необходимо иметь обе учетные записи для monty, чтобы иметь возможность подключаться из любого места как monty. Без учетной записи localhost учетная запись анонимного пользователя для localhost, созданная с помощью mysql_install_db, будет иметь приоритет при подключении monty из местный хост В результате monty будет рассматриваться как анонимный пользователь. Причина этого заключается в том, что учетная запись анонимного пользователя имеет более конкретное значение столбца Host, чем учетная запись 'monty'@'%', и, следовательно, имеет более ранний порядок сортировки таблицы пользователя.

Имея это в виду, я бы порекомендовал вам создать пользователя 'brian'@'localhost' с такими же привилегиями.

3
Russell Silva

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

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

2
Asaph

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

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

2
ception

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

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

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

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

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

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

1
Chenxiao

В моем случае это было из-за того, что я нажал «SSL: REQUIRE SSL» (в phpmyadmin). Когда я изменил его на «НЕ ТРЕБУЕТСЯ», я мог войти в систему.

1
Ari

У меня была похожая проблема при попытке подключиться к базе данных Maria, работающей в 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 
0
theINtoy

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

mysql -u brian -ppassword -h 'other_Host_than_localhost'
0
obotezat