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

Я создал пользователя в MySQL, но не могу войти с ним.

MariaDB [(none)]> create user fe_joomla;
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> grant all on fe_joomla.* to fe_joomla;
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> show grants for fe_joomla;
+----------------------------------------------------------+
| Grants for fe_joomla@%                                   |
+----------------------------------------------------------+
| GRANT USAGE ON *.* TO 'fe_joomla'@'%'                    |
| GRANT ALL PRIVILEGES ON `fe_joomla`.* TO 'fe_joomla'@'%' |
+----------------------------------------------------------+
2 rows in set (0.00 sec)

$ mysql -u fe_joomla fe_joomla
ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'fe_joomla'

я следовал этому руководству. http://www.mysqltutorial.org/mysql-grant.aspx

1
задан Chloe
29.12.2022 22:25 Количество просмотров материала 3574
Распечатать страницу

3 ответа

в более старых версиях MySQL были некоторые тестовые учетные записи с пустыми именами пользователей, которые были созданы по умолчанию. Они были в основном безвредны, но очень проблематичны. Был сценарий под названием mysql_secure_installation это очистило это, и похоже, что он не был запущен, когда ваша система была настроена.

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

mysql> SELECT * FROM mysql.user WHERE user = '';

отметим, что '' - это две одинарные кавычки ' ни одной двойной кавычки ".

после обеспечения что вы имеете полное резервное копирование в целях безопасности, удалите эти тестовые учетные записи. (Это должно быть абсолютно безопасной операцией, но наличие резервной копии является хорошей практикой.)

mysql> DELETE FROM mysql.user WHERE user = '';
mysql> FLUSH PRIVILEGES;

проблема с этими тестовыми учетными записями заключается в том, что есть какое-то магическое поведение, когда дело доходит до сопоставления имен пользователей, а пустое имя пользователя имеет особое значение. Это была плохая функция, которая, вероятно, была первоначально добавлена, чтобы облегчить начало работы.

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

1
отвечен Michael - sqlbot 2022-12-31 06:13

похоже, вы не ввели команду "flush привилегии", чтобы активировать нового пользователя без перезагрузки.

0
отвечен davidgo 2022-12-31 08:30

Я удалил пользователя fe_joomla и воссоздал пользователя как fe_joomla@localhost и выдать права fe_joomla@localhost и это сработало. Я мог бы использовать mysql -u fe_joomla fe_joomla сейчас.

create user fe_joomla@localhost;
grant all on fe_joomla.* to fe_joomla@localhost;

ответ Майкла, вероятно, тоже сработает.

0
отвечен Chloe 2022-12-31 10:47

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх