Команда MySQL добавляет «@localhost» к имени пользователя

Команда MySQL добавляет «@localhost» к имени пользователя

Я просто не могу в этом разобраться.

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

При использовании команды: mysql -h <hostname> -u <username> -pя получаю следующую ошибку:

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

Проблема в том, что он продолжает добавлять имя хоста текущей машины к имени пользователя. Очевидно, что это user@<local_machine_hostname>неправильно.

Неважно, что я печатаю. Например, если я печатаю:

mysql -h <hostname> -u '<username>'@'<hostname>' -p

Он делает то же самое, только в выводе ошибки говорится:

Access denied for user '<username>@<hostname>'@'<local_machine_hostname>'

Есть ли настройка в файле конфигурации, которая позволяет этому происходить? Это действительно довольно раздражает. Мне нужно настроить сервер tikiwiki, и он не может подключиться, потому что на этапе настройки mysql он продолжает добавлять имя хоста локальной машины к имени входа mysql.

решение1

Разрешения MySQL основаны на хосте. Когда вы СОЗДАЕТЕ ПОЛЬЗОВАТЕЛЯ (или ПРЕДОСТАВЛЯЕТЕ) пользователю, вы указываете имя хоста. Это может быть '%' или 'localhost' или любой другой IP или имя хоста. Это функция безопасности. Вы хотите, чтобы это произошло. Это не «добавление» имени хоста к имени пользователя, когда он сообщает вам об отказе в доступе. Каждое хранится в отдельном столбце таблицы mysql.users. Если вы хотите иметь возможность войти в MySQL со своего компьютера как этот пользователь, вам нужно предоставить этому пользователю доступ со своего компьютера...

ИзДокументация MySQL по CREATE USER:

Каждая учетная запись именуется с использованием того же формата, что и для оператора GRANT; например, 'jeffrey'@'localhost'. Если вы указываете только часть имени пользователя в имени учетной записи, используется часть имени хоста '%'. Для получения дополнительной информации об указании имен учетных записей см. Раздел 12.4.1.3, «Синтаксис GRANT».

решение2

зайдите в mysql wworkbannch и введите код

ALTER USER ALTER USER 'root'@'localhost' ИДЕНТИФИКИРОВАН С mysql_native_password ПО '123';

Связанный контент