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
RuslanN
fuente

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
Bryan
fuente
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`
Andrew Palmer
fuente