Acessando localhost do servidor mysql usando bash

Acessando localhost do servidor mysql usando bash

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

informação relacionada