El comando MySQL agrega '@localhost' al nombre de usuario

El comando MySQL agrega '@localhost' al nombre de usuario

Parece que no puedo entender esto.

Quiero usar la línea de comando para conectarme a una base de datos MySQL que reside en otro servidor. Seguí adelante y creé el nombre de usuario y la contraseña para el usuario. También le he otorgado todos los privilegios a ese usuario para esa base de datos.

Cuando uso el comando:, mysql -h <hostname> -u <username> -paparece el siguiente error:

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

El problema es que sigue agregando el nombre de host de la máquina actual al nombre de usuario. Obviamente, eso user@<local_machine_hostname>no es correcto.

No importa lo que escriba. Por ejemplo, si escribo:

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

Hace lo mismo, solo que en la salida de error dice:

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

¿Existe alguna configuración en un archivo de configuración que permita que esto suceda? Es realmente bastante molesto. Necesito configurar un servidor tikiwiki y no se puede conectar porque durante el paso en el que configura mysql, sigue agregando el nombre de host de la máquina local al nombre de inicio de sesión de mysql.

Respuesta1

Los permisos de MySQL se basan en el host. Cuando CREA USUARIO (o CONCEDE) la existencia del usuario, proporciona un nombre de host. Puede ser '%' o 'localhost' o cualquier otra IP o nombre de host. Es una característica de seguridad. Quieres que esto suceda. No "agrega" el nombre del host al nombre de usuario cuando le indica acceso denegado. Cada uno se almacena en una columna diferente de la tabla mysql.users. Si desea poder iniciar sesión en MySQL desde su máquina como ese usuario, deberá otorgarle acceso a ese usuario desde su máquina...

Desde elDocumentos de MySQL sobre CREAR USUARIO:

Cada cuenta se nombra utilizando el mismo formato que para la declaración GRANT; por ejemplo, 'jeffrey'@'localhost'. Si especifica solo la parte del nombre de usuario del nombre de la cuenta, se utiliza una parte del nombre de host de '%'. Para obtener información adicional sobre cómo especificar nombres de cuentas, consulte la Sección 12.4.1.3, “Sintaxis GRANT”.

Respuesta2

vaya a mysql wworkbannch e ingrese el código

ALTERAR USUARIO ALTERAR USUARIO 'root'@'localhost' IDENTIFICADO CON mysql_native_password POR '123';

información relacionada