Estoy tratando de hacer que el cliente mysql se conecte a un servidor mysql sin requerir que la contraseña se proporcione de forma interactiva. Pasos tomados:
1) Primero cree un archivo mylogin.cnf
$ mysql_config_editor set --user=<user> --password --host=<host>
Enter password:
2) Archivo creado con éxito:
$ ls -la .mylogin.cnf
-rw-------. 1 urmt urmt 136 Dec 19 11:01 .mylogin.cnf
$ mysql_config_editor print --all
[client]
user = <user>
password = *****
host = <host>
3) Conéctese usando el cliente mysql
$ mysql <dbname>
ERROR 1045 (28000): Access denied for user '<user>'@'<host>' (using password: NO)
¿Hay algún valor / configuración predeterminado en alguna parte que haga que el cliente ignore la contraseña en mylogin.cnf? Las propiedades de usuario y host se leyeron correctamente del archivo.
Puedo conectarme bien si proporciono la contraseña en la línea de comando:
$ mysql -p <dbname>
Enter password:
Reading table information...
...
mysql>
La versión del cliente MySQL es 5.6.22, la versión del servidor MySQL es 5.6.22, tanto en Oracle Linux 6. El cliente y el servidor están en diferentes hosts.
Gracias
-pyour_pass
u--password=your_pass
en la línea de comando (...) Esto es conveniente pero inseguro ".use el siguiente comando para establecer primero la ruta de inicio de sesión
y luego use el siguiente comando para iniciar sesión en mysql
La ayuda sobre las opciones de ruta de inicio de sesión de mysql puede ser vista por
fuente
Tuve el mismo problema que OP, pero las respuestas en este hilo me confundieron. El enlace de Vinay Mandala realmente funcionó para mí. Publicado aquí para mayor claridad.
Mi problema:
Demuestra que
mysql_config_editor
no maneja caracteres especiales en la contraseña correctamente.Solución:
Cuando le
mysql_config_editor
solicite la contraseña, asegúrese de ponerla entre comillas dobles (") . Luego, puede iniciar sesión correctamente.fuente
Recibía este error, excepto que decía (usando la contraseña: SÍ)
La razón mencionada por Giovanni fue debido a un "#" en la contraseña. Descubrí que una solución alternativa es insertar comillas alrededor de su contraseña cuando se le solicite. La misma restricción existe con las contraseñas de texto sin formato que usan .my.cnf.
fuente
La respuesta de Nawaz es correcta. Tengo poco que agregar. Le sugiero que haga algunos intentos con la variable de entorno MYSQL_TEST_LOGIN_FILE para crear un nuevo archivo de configuración, en caso de que el archivo predeterminado esté dañado. Úselo también
--no-defaults
para omitir.cnf
archivos. Si la contraseña contiene el carácter#
,mysql login-path
no funciona.fuente
mysql
es el comando execmysql
? De lo contrario, cambie el propietario demylogin.cnf
y debería funcionar :)Me encuentro con un problema similar al del póster original. Sospecho que tiene que ver con los caracteres de la contraseña que no se cifran / descifran correctamente.
Para confirmar, intente cambiar la contraseña a algo simple y vea si este problema desaparece.
fuente
Tuve este problema con un script de shell. Mi script estaba cambiando el valor de $ HOME y esto causó que --login-path = *** pareciera ignorarse. Cuando dejé de cambiar el valor de $ HOME, comenzó a funcionar.
fuente
NOTA: si está intentando ejecutar el usuario
path
bajo Linuxroot
, no puede simplemente usarlosudo
. Debe iniciar sesión como IE raízTambién como se menciona en otras publicaciones aquí. Debe usar comillas dobles alrededor de su
mysql
contraseña si contiene algo más que caracteres alfanuméricos.fuente