Como importar um arquivo .sql no MySQL?


39

Estou tentando importar um arquivo .sql usando o MySQL Workbench e recebo este erro:

ERROR 1046 (3D000) at line 28: No database selected

Primeiro criei um banco de dados vazio chamado com o mesmo nome que o arquivo .sql, mas ele não funciona. Eu também tentei fazê-lo com o cliente de comando mysql usando:

mysqldump -u root database > file.sql 

Mas diz que há um erro na minha sintaxe SQL. Além disso, não sei o caminho em que tenho que definir o arquivo.sql.


Consegui importar o mysqldump usando o mysql abaixo> use mydatabase; mysql> fonte sql_file.sql;
Giridharan Venugopal

Respostas:


49

Exportação:

mysqldump -u username –-password=your_password database_name > file.sql

Importar:

mysql -u username –-password=your_password database_name < file.sql 

9
Tem que haver nenhum espaço entre -pepassword
tombom

E se eu não tiver uma senha?

Em seguida, pule o parâmetro de senha.
Kazimieras Aliulis

Piping ( mysqldump db -uuser -ppass|mysql new_db -uuser -ppass) remove a necessidade de usar um arquivo intermediário.
Pacerier 12/10

2
O banco de dados tem que existir no MySQL para que isso funcione, eu acho.
Noumenon

28

Você também pode importar um arquivo .sql como um usuário já conectado à maneira do banco de dados:

mysql> use your_database_name;

mysql> source file.sql;

3
fonte D: /path/file.sql; funciona excelente! lembre-se da barra frontal em vez da barra traseira.
Imdad 9/01/2015

6

Outra maneira de importar arquivos de despejo quando source <filename>não funciona é fazer o seguinte:

Despejo

~> mysqldump --user=<user> --password=<password> <db_name> > <export_file_name>.sql

Importar

> mysql -u <user> -p <pass> <db_name>
mysql> USE <db_name>;  (if you didn't already select)
mysql> \. ~/<export_file_name>.sql

5

a resposta de juergen d está obviamente correta; no entanto, considerando sua mensagem de erro, você também pode adicionar ao seu arquivo SQL na linha de início, como:

USE your_database_name;

Isso também deve fazer o trabalho e permitir que você importe no Workbench.

Quando você estiver usando mysqldump, o arquivo exportado será salvo na pasta atual. Não importa em que caminho é. Apenas ao importar da linha de comando, você precisa estar na mesma pasta ou especificar o caminho para o arquivo. Mas esse não é o caso quando você está usando uma ferramenta visual como o Workbench, onde é necessário selecionar o arquivo da árvore de pastas de qualquer maneira.


2

Você está perdendo a senha no comando. Use o seguinte.

mysql --u [username] --password=[password] [database name] < [dump file]

1

Para Windows, no diretório de instalação do servidor MySQL (por exemplo C:\Program Files\MySQL\MySQL Server 5.5), em my.ini file, adicione a seguinte linha em [mysqld]na seção servidor:

max_allowed_packet = 16M

E salve as alterações. (Se você não tem permissão para salvar, copie e cole na área de trabalho e edite novamente e cole no mesmo local.)

Depois disso, reinicie o servidor MySQL.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.