Escribí un script de shell simple para volcar una base de datos mysql específica. El problema es que me está pidiendo una contraseña a pesar de que la proporcione. El mysql db es la versión 5.0.27 si eso importa. Aquí está la línea específica que estoy usando.
$MYSQLDUMP -u backup -p$MyPass $DB > $DEST/$FILE
Intenté varias variaciones, pero fue en vano.
Una mejor solución sería almacenar el nombre de usuario y la contraseña en un archivo de configuración y apuntar a ese archivo de configuración. Al tenerlo en la línea de comando, cualquiera que pueda ejecutar ps podría encontrar la contraseña de su servidor.
Pase el
--defaults-extra-file=/pathto/database.cnf
volcado a mysql.El archivo de configuración debe tener este aspecto. Establezca los permisos del sistema de archivos para que solo el proceso de copia de seguridad pueda abrir el archivo de configuración.
Actualización (2016-06-29) Si está ejecutando mysql 5.6.6 o superior, debe consultar la herramienta mysql_config_editor que le permite almacenar credenciales en un archivo cifrado. Gracias a Giovanni por mencionarme esto.
fuente
aoeu1234
, mi archivo de configuración tienepassword = 'aoeu1234'
; de lo contrario, recibirá un error no autorizado.