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.