Aqui está o cmd completo para os pasters cópiamysqldump -u USERNAME -h HOST --no-create-info --skip-triggers YOURDATABASENAME YOURTABLENAME --where='id=12345678'
Ýzmir Ramirez
2
Se você obtiver Access denied for user ... to database '...' when doing LOCK TABLES, use--single-transaction
Rolf
@YzmirRamirez obrigado, mas para sua informação no Windows, eu tive que usar aspas duplas --where. Por exemplo,--where="id=2"
Kip
Este foi um economizador brilhante para mim. Obrigado.
Ken Ingram
149
Isso deve funcionar:
# To export to file (data only)
mysqldump -u [user]-p[pass]--no-create-info mydb > mydb.sql
# To export to file (structure only)
mysqldump -u [user]-p[pass]--no-data mydb > mydb.sql
# To import to database
mysql -u [user]-p[pass] mydb < mydb.sql
--no-create-dbé redundante ao usar--no-create-info
James McMahon
4
Um espaço depois -pestá bom
Obrigado
12
Geralmente é melhor usar -p sem fornecer a senha para que a senha não seja armazenada no seu histórico do bash (você será solicitado a digitar a senha depois de executar o comando).
Dan
2
Além do conselho de @ Dan, também torna a senha visível para qualquer usuário que possa listar os processos atuais ( ps -ef)
TMG
1
Deixar a senha após a -popção mysqldumpsolicita a senha.
Melle
22
>> man -k mysqldump [enter in the terminal]
você encontrará a explicação abaixo
--no-criar-informação, -t
Não escreva instruções CREATE TABLE que recriam cada tabela despejada. Nota Esta opção não exclui instruções que criam grupos de arquivos de log ou espaços de tabela a partir da saída do mysqldump; no entanto, você pode usar a opção --no-tablespaces para essa finalidade.
--no-data, -d
Não escreva nenhuma informação de linha da tabela (ou seja, não despeje o conteúdo da tabela). Isso é útil se você deseja despejar apenas a instrução CREATE TABLE da tabela (por exemplo, para criar uma cópia vazia da tabela carregando o arquivo de despejo).
obrigado por --compactse livrar das declarações de comentários extras
chiliNUT 13/03
2
Sugeriria usar o seguinte trecho. Funciona bem mesmo com tabelas enormes (caso contrário, você abriria o despejo no editor e removeria coisas desnecessárias, certo?;)
mysqldump --no-create-info --skip-triggers --extended-insert --lock-tables --quick DB TABLE > dump.sql
É necessário pelo menos o mysql 5.x , mas quem executa coisas antigas hoje em dia .. :)
Eu me deparei com uma situação recentemente, na qual tive que me conectar a um sistema que estava usando o 4.x na produção. Eles tinham espaços nos nomes de tabelas e colunas e, na minha opinião, estavam fazendo basicamente tudo errado.
Ao tentar exportar dados usando a resposta aceita, recebi um erro:
ERROR 1235(42000) at line 3367: This version of MySQL doesn't yet support 'multiple triggers with the same action time and event for one table'
Como acima mencionado:
mysqldump --no-create-info
Exportará os dados, mas também exportará as instruções de criação de gatilho. Se você gosta de sua estrutura de banco de dados de saída (que também inclui gatilhos) com um comando e, em seguida, usando o comando acima para obter os dados, você também deve usar '--skip-triggers'.
Respostas:
Além disso, você pode usar:
--skip-triggers
: se você estiver usando gatilhos--no-create-db
: se você estiver usando a--databases ...
opção--compact
: se você quiser se livrar de comentários extrasfonte
mysqldump -u USERNAME -h HOST --no-create-info --skip-triggers YOURDATABASENAME YOURTABLENAME --where='id=12345678'
Access denied for user ... to database '...' when doing LOCK TABLES
, use--single-transaction
--where
. Por exemplo,--where="id=2"
Isso deve funcionar:
NOTA: não há espaço entre
-p
&[pass]
fonte
--no-create-db
é redundante ao usar--no-create-info
-p
está bomps -ef
)-p
opçãomysqldump
solicita a senha.você encontrará a explicação abaixo
fonte
Se você deseja apenas as consultas INSERT, use o seguinte:
mysqldump --skip-triggers --compact --no-create-info
fonte
--compact
se livrar das declarações de comentários extrasSugeriria usar o seguinte trecho. Funciona bem mesmo com tabelas enormes (caso contrário, você abriria o despejo no editor e removeria coisas desnecessárias, certo?;)
É necessário pelo menos o mysql 5.x , mas quem executa coisas antigas hoje em dia .. :)
fonte
Apenas despeje os dados no formato de texto delimitado .
fonte
Tente despejar em um arquivo delimitado.
fonte
Ao tentar exportar dados usando a resposta aceita, recebi um erro:
Como acima mencionado:
Exportará os dados, mas também exportará as instruções de criação de gatilho. Se você gosta de sua estrutura de banco de dados de saída (que também inclui gatilhos) com um comando e, em seguida, usando o comando acima para obter os dados, você também deve usar '--skip-triggers'.
Então, se você quiser apenas os dados:
fonte