Importar arquivo SQL para mysql

190

Eu tenho um banco de dados chamado nitm. Eu não criei nenhuma tabela lá. Mas eu tenho um arquivo SQL que contém todos os dados necessários para o banco de dados. O arquivo está em nitm.sqlque está C:\ drive. Este arquivo tem tamanho de cerca de 103 MB. Estou usando o servidor wamp.

Eu usei a seguinte sintaxe no console do MySQL para importar o arquivo:

mysql>c:/nitm.sql;

Mas isso não funcionou.

kushalbhaktajoshi
fonte

Respostas:

406

No console do mysql:

mysql> use DATABASE_NAME;

mysql> source path/to/file.sql;


verifique se não há barra antes do caminho, se você está se referindo a um caminho relativo ... demorei um pouco para perceber isso! ri muito

d -_- b
fonte
36
Você não precisa de uma barra antes do caminho se estiver fazendo uma referência relativa. Se você estiver indo da raiz, você irá, ie/home/user/file.sql
Wes Johnson
5
Pena que não há como adicionar uma resposta aos favoritos :(
baldrs
4
No Chrome, eles são chamados de marcadores, e você pode simplesmente clicar na estrela na barra de endereços;)
Andrew
2
@ ArseniuszŁozicki adicione a pergunta e você poderá responder :) é isso que eu faço.
mandza
2
Apenas para adicionar a esta resposta que path/to/file.sqlé o caminho do sistema de arquivos local em que o cliente mysql está. Há momentos em que o servidor MySQL espera que o caminho esteja no lado do servidor, ou seja, SELECT ... INTO OUTFILEque coloca o arquivo no caminho no servidor MySQL!
Devy 26/05
90

Finalmente, eu resolvi o problema. Coloquei o arquivo `nitm.sql` no arquivo` bin` da pasta `mysql` e usei a seguinte sintaxe.

C:\wamp\bin\mysql\mysql5.0.51b\bin>mysql -u root nitm < nitm.sql

E isso funcionou.

kushalbhaktajoshi
fonte
8
Isso não é do console do mysql, como o OP pediu, mas de um console do mysql. A resposta de Robert Anthony Tribiana descreve como fazê-lo no console do mysql.
Halfpastfour.am
Esta não é a maneira exata de resolver o problema, não é uma solução.
Ashish Ratan
4
Vocês sabem que este foi o OP que respondeu a isso?
Wes
Se seus mysql precisa de uma senha, em seguida, é método não vai funcionar, você precisa a resposta topo da @d -_- b
shellbye
52

Se você estiver usando o wamp, tente isso. Basta digitar use your_Database_nameprimeiro.

  1. Clique no ícone do servidor wamp, procure MYSQL > MSQL Consolee execute-o.

  2. Se você não tiver uma senha, basta pressionar enter e digite:

    mysql> use database_name;
    mysql> source location_of_your_file;

    Se você tiver uma senha, você será solicitado a inserir uma senha. Digite sua senha primeiro e digite:

    mysql> use database_name;
    mysql> source location_of_your_file;

location_of_your_file deve parecer C:\mydb.sql

então o elogio é mysql> source C: \ mydb.sql;

Esse tipo de importação de dump sql é muito útil para o BIG SQL FILE.

Copiei o meu arquivo mydb.sqpara o diretório C:.Ele deveria ser a capital C: Para executar

e é isso.

Robert Anthony Tribiana
fonte
1
Esta resposta parece específica do WAMP, enquanto o código mostrado funciona em qualquer ambiente executando o MySQL, onde você pode acessar o MySQL através de um terminal ou console.
Halfpastfour.am
26

No Windows, se a sugestão acima fornecer um erro (arquivo não encontrado ou db desconhecido), convém dobrar as barras:

No console do mysql:

mysql> use DATABASE_NAME;

mysql> source C://path//to//file.sql;
user3219217
fonte
1
Uma única barra funcionou para mim na minha máquina Windows.
Manoj Shrestha
17

Ok, estou usando o Linux, mas acho que isso também vale para o Windows. Você pode fazer isso diretamente no prompt de comando

> mysql -u <user name> -p<password> <database name> < sqlfilename.sql

Ou a partir do prompt do mysql, você pode usar:

mysql>source sqlfilename.sql

Mas ambas as abordagens têm seus próprios benefícios nos resultados que exibem. Na primeira abordagem, o script sai assim que encontra um erro. E a melhor parte é que ele informa o número exato da linha no arquivo de origem onde ocorreu o erro. No entanto, apenas exibe erros. Se não encontrou nenhum erro, os scripts exibem NADA. O que pode ser um pouco irritante. Porque você costuma executar um script com toda uma pilha de comandos.

Agora, a segunda abordagem (de dentro do prompt do mysql) tem o benefício de exibir uma mensagem para cada comando MySQL diferente no script. Se encontrar erros, exibirá a mensagem de erro do mysql, mas continuará pelos scripts. Isso pode ser bom, porque você pode voltar e corrigir todos os erros antes de executar o script novamente. A desvantagem é que NÃO exibe os números de linha no script em que os erros foram encontrados. Isso pode ser um pouco doloroso. Mas as mensagens de erro são tão descritivas, então você provavelmente pode descobrir onde está o problema.

Eu, por exemplo, prefiro a abordagem de linha de comando diretamente do SO.

peterb
fonte
9

Se você estiver usando o xampp

C:\xampp\mysql\bin\mysql -uroot -p nitm < nitm.sql
Nanhe Kumar
fonte
7

Você está quase lá, use

mysql> \. c:/nitm.sql;

Você também pode acessar a ajuda de

mysql> \?
Lmwangi
fonte
1
Isso não funcionou. Quando eu usei o mysql> \. c: /nitm.sql; , lançou um erro como Falha ao abrir o arquivo 'c: \ nitm.sql;', erro: 2
kushalbhaktajoshi
Você já tentou variações disso? Algumas aplicações respeitam C: \ nitm.sql
Lmwangi
Observe também que o ponto e vírgula no final não é necessário. Então remova-o. Outra opção é 'cd c:' e tente "\. Nitm.sql"
Lmwangi
1
Por favor, pense antes de digitar. 'cd c:' é o comando do prompt do DOS, não do console mySql.
precisa saber é o seguinte
1
mysql> \. ~/Downloads/backups/file.sql funcionou perfeitamente no mysql> e a partir da coosalresposta do terminal também funcionou.
gmuhammad 02/09/12
6

Para localhost no XAMPP. Abra uma janela do cmd e digite

cd C:\xampp\mysql\bin
mysql.exe -u root -p

Atenção! Sem ponto-e-vírgula após -p Digite sua senha e digite

use database_name;

para selecionar o banco de dados necessário.

Verifique se a sua mesa está lá

show tables;

Importar do seu arquivo sql

source sqlfile.sql;

Coloquei meu arquivo no local C: \ xampp \ mysql \ bin para não misturar com os locais do arquivo sql.

Adrian P.
fonte
4

Experimentar:

mysql -u username -p database_name < file.sql

Verifique as opções do MySQL .

Nota: É melhor usar o caminho completo do arquivo SQL file.sql.

Akshay Pethani
fonte
3

Não esqueça de usar

charset utf8

Se o seu arquivo sql estiver em utf-8 :)

Então você precisa fazer:

cmd.exe

raiz mysql -u

mysql> charset utf8

mysql> use mydbname

mysql> fonte C: \ myfolder \ myfile.sql

Boa sorte ))

Олег Всильдеревьев
fonte
3

No Linux, naveguei para o diretório que contém o arquivo .sql antes de iniciar o mysql. O cursor do sistema está agora no mesmo local que o arquivo e você não precisará de um caminho. Use a fonte myData.sql onde minha data é substituída pelo nome do seu arquivo.

cd whatever directory

mysql - p

conectar o targetDB

source myData.sql

Feito

Robert Quinn
fonte
2

na linha de comando (cmd.exe, não no shell do mysql) tente algo como:

type c:/nite.sql | mysql -uuser -ppassword dbname
Omry Yadan
fonte
Eu não criei nenhuma senha para o banco de dados, por isso está em branco no campo de senha. E eu usei a sintaxe acima como esta c: /nitm.sql | mysql -u root -p nitm mas isso também não funcionou. Você pode me ajudar com isso um pouco mais?
#
Omitir -p não funcionou tão bem. Este erro gerado como 'c:' não é reconhecido como um comando interno ou externo, programa operável ou arquivo em lote.
#
2

Seu dump contém recursos que não são suportados na sua versão do MySQL? Você também pode tentar remover as instruções SET comentadas no início e no final do MySQL.

Não sei se o seu dump vem de uma versão Linux do MySQL (finais de linha)?

Maickel
fonte
Eu já excluí as instruções SET comentadas pelo mysql. Mas ainda assim o erro ocorre.
#
Você pode tentar efetuar login no shell de comando do MySQL e a instrução use then: "source c: \ nite.sql". Não se esqueça de selecionar o banco de dados correto.
Maickel
Eu realmente aprecio o seu esforço. Obrigado.
kushalbhaktajoshi
2

Eu instalei meu servidor wamp na unidade D: então você tem que ir para o seguinte caminho a partir da linha de comando -> (e se você tiver instalado o seu wamp na unidade c:

D:\>cd wamp
D:\wamp>cd bin
D:\wamp\bin>cd mysql
D:\wamp\bin\mysql>cd mysql5.5.8 (whatever ur verserion will be displayed here use keyboard Tab button)
D:\wamp\bin\mysql\mysql5.5.8>cd bin
D:\wamp\bin\mysql\mysql5.5.8\bin>mysql -u root -p password db_name < "d:\backupfile.sql"

aqui root é usuário da minha senha phpmyadmin é a senha do phpmyadmin, portanto, se você não tiver definido nenhuma senha para raiz, apenas nada nesse tipo, db_name é o banco de dados (para o qual o banco de dados está fazendo o backup), backupfile.sql é o arquivo do qual você deseja fazer backup do banco de dados e também pode alterar o local do arquivo de backup (d: \ backupfile.sql) para qualquer outro local do seu computador

Sachin
fonte
1
mysql>c:/nitm.sql;

Isso escreveria a saída do comando mysql para 'nitm.sql;' (O que o ';' deve fazer?) Supondo que você tenha uma cópia do arquivo original (antes de substituí-lo), então:

mysql < c:/nitm.sql
symcbean
fonte
Isso também não funcionou. Ele gerou um erro como o ERRO 1064 <42000>: Você tem um erro na sintaxe do SQL; verifique o manual que corresponde à sua versão do servidor MySql para a sintaxe correta a ser usada perto de 'mysql <c: /nitm.sql' na linha 1
kushalbhaktajoshi
1

Exportar bancos de dados específicos

 djimi:> mysqldump --user=root --host=localhost --port=3306 --password=test -B CCR KIT >ccr_kit_local.sql

isso exportará os bancos de dados CCR e KIT ...

Importar todo o banco de dados exportado para uma instância específica do Mysql (você deve estar onde está o seu arquivo de despejo)

djimi:> mysql --user=root --host=localhost --port=3306 --password=test < ccr_kit_local.sql
musa
fonte
0

No sistema operacional Windows, os seguintes comandos funcionam para mim.

mysql>Use <DatabaseName>
mysql>SOURCE C:/data/ScriptFile.sql;

Não há aspas simples ou duplas em torno do nome do arquivo. O caminho conteria '/' em vez de '\'.

Pabitra Dash
fonte
0

Para aqueles que estão lutando para conseguir isso, tente todas as respostas possíveis que encontrar no SO. Aqui está o que funcionou para mim em um VPS executando o Windows 2012 R2:

  1. Coloque seu arquivo sql onde quer que a lixeira seja para mim. C:\Program Files\MySQL\MySQL Server 8.0\bin

  2. Prompt de comando do Windows aberto (cmd)

  3. Corre C:\Program Files\MySQL\MySQL Server 8.0\bin > mysql -u [username] -p
  4. Coloque sua senha
  5. Executar comando use [database_name];
  6. Importe seu arquivo com a fonte de comando C://Program Files//MySQL//MySQL Server 8.0//bin//mydatabasename.sql

Fez isso por mim, pois tudo o mais havia falhado. Isso pode ajudá-lo também.

user45678
fonte