Supongamos que quiero acceder al servidor MySQL e imprimir todas las tablas y bases de datos y sus datos en localhost usando un script bash.
El script que tengo se ve así:
mysql -u raíz -p contraseña
Después de ejecutar el script, se abre el shell mysql en lugar de bash. Entonces, ¿cómo puedo ejecutar un comando con MySQL?
Además, ¿qué comando debo ejecutar para imprimir todas las bases de datos, tablas y sus datos?
Editar: ahora entiendo qué comando debo usar, pero aún persiste la pregunta:
Necesito incluirlo en el script, pero al ingresar el comando mysqldump, me solicita la contraseña de forma interactiva.
Entonces, ¿cómo puedo manejar la contraseña en un script bash?
Respuesta1
Vermysqldumpque hace lo que quieres.
Ejemplo de uso:
mysqldump -u root -p --all-databases
Consulte el manual para obtener más interruptores que se adapten a su situación particular.
Respuesta2
prueba esto..
mysqldump -u root -p databasename > filename.sql
todas las tablas se almacenan en nombre de archivo.sql. es como una copia de seguridad.
y si desea volver a almacenar tablas en la base de datos, utilice este comando.
mysqldump -u root -p databasename < filename.sql
Respuesta3
Si ejecuta man mysqldump
, obtendrá el siguiente resultado:
--contraseña[=contraseña], -p[contraseña]
La contraseña que se utilizará al conectarse al servidor. Si utiliza el formulario de opción corta (-p), no puede haber un espacio entre la opción y la contraseña. Si omite el valor de la contraseña después de la opción --password o -p en la línea de comando, mysqldump solicitará una.
Especificar una contraseña en la línea de comando debe considerarse inseguro. Consulte la Sección 6.1.2.1, "Directrices para el usuario final sobre seguridad de contraseñas". Puede utilizar un archivo de opciones para evitar dar la contraseña en la línea de comando.
Suponiendo que su contraseña de root sea CONTRASEÑA, simplemente intente con el siguiente comando:
mysqldump -u root -pPASSWORD --all-databases > database.sql