Suponha que eu queira acessar o servidor mysql e imprimir todas as tabelas e bancos de dados e seus dados no host local usando o script bash.
O script que tenho se parece com:
mysql -u root -p senha
Depois que o script é executado, o shell do mysql é aberto em vez do bash. Então, como posso executar um comando com mysql?
Além disso, qual comando devo executar para imprimir todos os bancos de dados, tabelas e seus dados?
Editar: agora entendo qual comando devo usar, mas a questão permanece:
Preciso inserir isso no script, mas ao inserir o comando mysqldump, ele pede a senha de forma interativa.
Então, como posso lidar com a senha em um script bash?
Responder1
Vermysqldumpque faz o que você quer.
Exemplo de uso:
mysqldump -u root -p --all-databases
Consulte o manual para obter mais opções adequadas à sua situação específica.
Responder2
tente isso..
mysqldump -u root -p databasename > filename.sql
todas as tabelas são armazenadas em filename.sql. é como backup.
e se você quiser armazenar tabelas no banco de dados, use este comando.
mysqldump -u root -p databasename < filename.sql
Responder3
Se você executar man mysqldump
, obterá a seguinte saída:
--senha[=senha], -p[senha]
A senha a ser usada ao conectar-se ao servidor. Se você usar o formato de opção abreviado (-p), não poderá deixar espaço entre a opção e a senha. Se você omitir o valor da senha após a opção --password ou -p na linha de comando, o mysqldump solicitará uma.
Especificar uma senha na linha de comando deve ser considerado inseguro. Consulte a Seção 6.1.2.1, "Diretrizes do usuário final para segurança de senha". Você pode usar um arquivo de opções para evitar fornecer a senha na linha de comando.
Supondo que sua senha root seja PASSWORD, tente o seguinte comando:
mysqldump -u root -pPASSWORD --all-databases > database.sql