Use el comando en el archivo para ingresar a mysql u otro entorno similar a shell


1

Digamos que tenemos la contraseña almacenada en /root/mysql-password. ¿Hay alguna forma de conectarse a MySQL sin copiar manualmente la contraseña de ese archivo e ingresar a mysql -u root -p{passowrd}?

Por ejemplo, algo como esto:

mysql -u root -p | {command} /root/mysql-password

Respuestas:


1

La forma más fácil sería crear. /root/.my.cnf archivo (no te olvides de chmod 0600 ) con este formato:

[client]
user=root
password=rootpass

Si estás haciendo algo y no puedes tener el archivo en /root/.my.cnf, deberías poder crearlo como filename.cnf y luego invocar MySQL con --defaults-file Me gusta esto:

mysql --defaults-file=/root/squirrellyfiles/filename.cnf

Gracias por la respuesta. ¿Así que esta es la única manera? ¿Y no hay una "forma de linux" común para hacer tales cosas?
— RuslanN

Lo siento, no estoy seguro de entender exactamente lo que estás preguntando. En Linux, generalmente tiene credenciales en un archivo de configuración plano (por ejemplo, .my.cnf), un archivo cifrado o hash, variables de entorno, a través de claves ssh, o una solicitud de contraseña. Pasar la contraseña a través del comando directamente es muy inseguro. ¿Estás haciendo algo donde el archivo por defecto o .my.cnf no te funciona?
— Bryan

Mi contraseña está en un archivo y cada vez que quería conectarme a mysql tenía que copiarlo en "cat file / with / password" y en "mysql -u user -ppassword" pensé que es posible automatizar la copia manual
— RuslanN

0

Es posible que esta no sea la forma preferida de resolver el problema en particular, pero la llamada "forma de Linux" sería usar backticks:

mysql -u root -p `cat /root/mysql-password`
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.