Para usar un archivo que esté en cualquier lugar dentro del sistema operativo, use, --defaults-extra-file
por ejemplo:
mysqldump --defaults-extra-file=/path/.sqlpwd [database] > [desiredoutput].sql
Nota: .sqlpwd
es solo un nombre de archivo de ejemplo. Puedes usar lo que desees.
Nota: MySQL verificará automáticamente ~/.my.cnf
qué se puede usar en lugar de--defaults-extra-file
Si estás usando CRON como yo, ¡prueba esto!
mysqldump --defaults-extra-file=/path/.sqlpwd [database] > "$(date '+%F').sql"
Permiso requerido y propiedad recomendada
sudo chmod 600 /path/.sqlpwd && sudo chown $USER:nogroup /path/.sqlpwd
.sqlpwd
contenido:
[mysqldump]
user=username
password=password
Otros ejemplos para pasar .cnf
o.sqlpwd
[mysql]
user=username
password=password
[mysqldiff]
user=username
password=password
[client]
user=username
password=password
Si desea iniciar sesión en una base de datos automáticamente, necesitaría la [mysql]
entrada, por ejemplo.
Ahora puede hacer un alias que lo conecte automáticamente a DB
alias whateveryouwant="mysql --defaults-extra-file=/path/.sqlpwd [database]"
También solo puede poner la contraseña dentro .sqlpwd
y pasar el nombre de usuario a través del script / cli. No estoy seguro de si esto mejoraría la seguridad o no, esa sería una pregunta diferente en conjunto.
Para completar, afirmaré que puede hacer lo siguiente, pero es extremadamente inseguro y nunca debe usarse en un entorno de producción:
mysqldump -u [user_name] -p[password] [database] > [desiredoutput].sql
Nota: NO HAY ESPACIO entre -p y la contraseña.
Por ejemplo, -pPassWord
es correcto mientras que -p Password
es incorrecto.