Veja mysqldump que faz o que você quer.
Exemplo de uso:
mysqldump -u root -p --all-databases
Consulte o manual para mais opções de acordo com sua situação específica.
Suponha que eu queira acessar o servidor mysql e imprimir todas as tabelas e bancos de dados e seus dados no localhost usando o script bash.
O script que tenho parece:
mysql -u root -p password
Após o script ser executado, o shell mysql é aberto em vez de bash. Então, como posso executar um comando com o mysql?
Além disso, qual comando devo executar para imprimir todos os bancos de dados, tabelas e seus dados?
Editar: agora recebo o comando que devo usar, mas a questão permanece:
Eu preciso fazer isso no script, mas ao entrar no comando mysqldump, ele pede senha interativamente.
Então, como posso manipular a senha em um script bash?
Veja mysqldump que faz o que você quer.
Exemplo de uso:
mysqldump -u root -p --all-databases
Consulte o manual para mais opções de acordo com sua situação específica.
tente isso ...
mysqldump -u root -p databasename > filename.sql
todas as tabelas armazenam em filename.sql. é como backup.
e se você quiser armazenar as tabelas de volta no banco de dados então use este comando.
mysqldump -u root -p databasename < filename.sql
Se você executar man mysqldump
, obterá a seguinte saída:
--password[=password], -p[password]
The password to use when connecting to the server. If you use the short option form (-p), you cannot have a space between the option and the password. If you omit the password value following the --password or -p option on the command line, mysqldump prompts for one.
Specifying a password on the command line should be considered insecure. See Section 6.1.2.1, "End-User Guidelines for Password Security". You can use an option file to avoid giving the password on the command line.
Supondo que sua senha root seja PASSWORD, tente o seguinte comando:
mysqldump -u root -pPASSWORD --all-databases > database.sql