Como posso importar um banco de dados com MySQL do terminal?

373

Como posso importar um banco de dados com mysql do terminal?

Não consigo encontrar a sintaxe exata.

aneuryzm
fonte

Respostas:

761

Supondo que você esteja em um console Linux ou Windows:

Solicitar senha:

mysql -u <username> -p <databasename> < <filename.sql>

Digite a senha diretamente (não seguro):

mysql -u <username> -p<PlainPassword> <databasename> < <filename.sql>

Exemplo:

mysql -u root -p wp_users < wp_users.sql

mysql -u root -pPassword123 wp_users < wp_users.sql

Veja também:

4.5.1.5 Executando instruções SQL de um arquivo de texto


Nota : Se você estiver no Windows, será necessário cd(alterar o diretório) para o diretório MySQL / bin dentro do CMD antes de executar o comando.

Preto
fonte
139
+1, exceto você não deve passar sua senha como parâmetro da CLI. Em vez disso, apenas especifique a opção -p e insira-a manualmente após o prompt.
31510 St.Woland
13
Não há espaço entre -p e a senha se você quiser inseri-la pelo shell.
Kethryweryn
8
mysql -u nome de usuário -h hostname -ppassword databasename <filename.sql para host remoto a partir do terminal
Shaik Rilwan
8
se você já está no prompt de comando do mysql (mysql>), basta digitar source_path_of_file completo (nota: selecione o banco de dados pelo comando USE DATABASE_NAME antes da importação).
Ankit Sharma 28/05
3
@Pekka 웃, se usarmos source, podemos ver as mensagens informativas ( "linhas afetadas" ) e as mensagens de erro. Mas, usando sua solução, como vemos as mensagens usando < filename.sql?
Pacerier 18/03/2015
141

Maneira preferível para windows:

  1. Abra o console e inicie o modo interativo MySQL

  2. use <name_of_your_database>;

  3. source <path_of_your_.sql>

Sri Harsha Kappala
fonte
2
por que não precisamos de um; depois do nome do arquivo?
Nabeel Khan
6
@NabeelKhan A maioria das instruções SQL requer um ;no final da instrução, mas existem algumas exceções, incluindo USEe SOURCE.
Simon East
11
Gostaria de saber se isso é mais rápido do que enviar o arquivo (como na resposta aceita). Minha suspeita é sim .
Simon East
Isso é muito mais rápido do que importar através do HeidiSQL ... 3 GB em 20 minutos!
kmdsax
Curioso. Quando eu removi ;o sourcecomando foi executado com sucesso. Antes não.
Nikos #
33

mysql -u <USERNAME> -p <DB NAME> < <dump file path>

-u - para nome de usuário

-p - para solicitar a senha

Por exemplo. mysql -u root -p mydb < /home/db_backup.sql

Você também pode fornecer uma senha precedida por -p, mas por razões de segurança não é sugerível. A senha aparecerá no próprio comando, mascarada.

Mukesh Singh Rathaur
fonte
2
Esta é a resposta que estou procurando. "<" este é o sinal que eu deixei.
Pravinraj Venkatachalam
Se o mydb não existe, como criá-lo dinamicamente quando acionamos o comando mysqldump?
अक्षय परूळेकर
12

Diretamente de var / www / html

mysql -u username -p database_name < /path/to/file.sql

De dentro do mysql:

mysql> use db_name;
mysql> source backup-file.sql
Lokesh Das
fonte
7

Do terminal:

mysql -uroot -p --default-character-set=utf8 database_name </database_path/database.sql
Mohammad Anini
fonte
7

no tipo de terminal

mysql -uroot -p1234; use databasename; source /path/filename.sql
Patrick Mutwiri
fonte
Isso permitiu ver o log de importação
Thiago Macedo
6

Eu normalmente uso esse comando para carregar meus dados SQL quando divididos em arquivos com nomes: 000-tableA.sql, 001-tableB.sql, 002-tableC.sql.

for anyvar in *.sql; do <path to your bin>/mysql -u<username> -p<password>  <database name> < $anyvar; done

Funciona bem no shell OSX.

Lano
fonte
5

Como carregar da linha de comando

Explicação:

  1. Primeiro, crie um banco de dados ou use um banco de dados existente. No meu caso, estou usando um banco de dados existente

  2. Carregue o banco de dados, fornecendo <name of database> = ClassicModelsno meu caso e, usando o operador, <forneça o caminho para odatabase = sakila-data.sql

  3. Ao executar as tabelas show, recebo a lista de tabelas como você pode ver.

Nota: No meu caso, recebi um erro 1062 , porque estou tentando carregar a mesma coisa novamente.

user42826
fonte
5
mysql -u username -ppassword dbname < /path/file-name.sql

exemplo

mysql -u root -proot product < /home/myPC/Downloads/tbl_product.sql

Use isso no terminal

vaibhav kulkarni
fonte
5

O comando abaixo está funcionando no ubuntu 16.04, não tenho certeza se está funcionando ou não em outras plataformas Linux.

Exportar arquivo SQL:

$ mysqldump -u [user_name] -p [database_name] < [database_name.sql]  

Exemplo: mysqldump -u root -p max_development> max_development.sql

Importar arquivo SQL:

$ mysqldump -u [user_name] -p [database_name] > [file_name.sql]

Example: mysqldump -u root -p max_production < max_development.sql

Nota O arquivo SQL deve existir no mesmo diretório

Deepak Chaube
fonte
5

Abra o terminal e depois

 mysql -u root -p

 eg:- mysql -u shabeer -p

Depois disso, crie um banco de dados

 mysql> create database "Name";

 eg:- create database INVESTOR;

Em seguida, selecione esse novo banco de dados "INVESTIDOR"

 mysql> USE INVESTOR;

Selecione o caminho do arquivo sql na máquina

 mysql> source /home/shabeer/Desktop/new_file.sql;

Em seguida, pressione enter e aguarde algumas vezes, se tudo estiver executado,

 mysql> exit

insira a descrição da imagem aqui

Shabeer Sha
fonte
4
  1. Abra o MySQL Command Line Client e digite sua senha

  2. Mude para o banco de dados que você deseja usar para importar os dados do arquivo .sql. Faça isso digitando:

    USE your_database_name
  3. Agora localize o arquivo .sql que você deseja executar.
    Se o arquivo estiver localizado no diretório principal local da unidade C: e o nome do arquivo de script .sql for currentSqlTable.sql, digite o seguinte:

    \. C:\currentSqlTable.sql

    e pressione Enterpara executar o arquivo de script SQL.

student001
fonte
7
O que é a Figura 1/2/3?
glglgl
4

Depois de algum tempo, encontrei as informações em https://tommcfarlin.com/importing-a-large-database/

  1. Conecte-se ao Mysql (vamos usar root para nome de usuário e senha):

    mysql -uroot -proot
  2. Conecte-se ao banco de dados (digamos que seja chamado emptyDatabase (você deve receber uma mensagem de confirmação):

    connect emptyDatabase

3 Importe o código-fonte, digamos que o arquivo se chame mySource.sql e esteja em uma pasta chamada mySoureDb no perfil de um usuário chamado myUser:

source /Users/myUser/mySourceDB/mySource.sql
LumasDesign
fonte
3

Se você estiver usando o sakila-db no site mysql, é muito fácil na plataforma Linux, basta seguir as etapas abaixo mencionadas. Depois de baixar o arquivo zip do sakila-db , extraia-o. Agora você terá dois arquivos, um é sakila-schema.sql e o outro é sakila-data.sql .


  1. Terminal aberto
  2. Digite o comando mysql -u root -p <sakila-schema.sql
  3. Digite o comando mysql -u root -p <sakila-data.sql
  4. Agora digite o comando mysql -u root -p e digite sua senha, agora você entrou no sistema mysql com o padrão banco de dados .
  5. Para usar o banco de dados sakila, use este comando use sakila;
  6. Para ver as tabelas em sakila-db, use show tables comando

Por favor, verifique se os arquivos extraídos estão presentes no diretório inicial .

alpha9eek
fonte
2

No Ubuntu, no monitor MySQL , você já usou esta sintaxe:

mysql> use <dbname> -> A instrução USE diz ao MySQL para usar dbnamecomo banco de dados padrão para instruções subsequentes

mysql> source <file-path>

por exemplo :

mysql> use phonebook;

mysql> source /tmp/phonebook.sql;

Importante : verifique se o arquivo sql está em um diretório que o mysql possa acessar como / tmp

Viet Hoang
fonte
1

Antes de executar os comandos no terminal, você deve certificar-se de ter o MySQL instalado no seu terminal.

Você pode usar o seguinte comando para instalá-lo:

sudo apt-get update
sudo apt-get install mysql-server

Refence aqui .

Depois disso, você pode usar os seguintes comandos para importar um banco de dados:

mysql -u <username> -p <databasename> < <filename.sql>
Wolfack
fonte
1

A maneira mais simples de importar um banco de dados no seu MYSQL do terminal é feita pelo processo abaixo mencionado -

mysql -u root -p root database_name < path to your .sql file

O que estou fazendo acima é:

  1. Entrando no mysql com meu nome de usuário e senha (aqui está root& root)
  2. Depois de digitar a senha, estou dando o nome do banco de dados para o qual quero importar meu arquivo .sql. Verifique se o banco de dados já existe no seu MYSQL
  3. O nome do banco de dados é seguido pelo <caminho para o seu arquivo .sql. Por exemplo, se meu arquivo estiver armazenado na área de trabalho, o caminho será/home/Desktop/db.sql

É isso aí. Depois de fazer tudo isso, pressione enter e aguarde o upload do seu arquivo .sql para o respectivo banco de dados

Ankit Saxena
fonte
0

Não deve haver espaço entre -p e senha

mysql -u [dbusername] -p[dbpassword] [databasename] < /home/serverusername/public_html/restore_db/database_file.sql

Eu sempre uso, funciona perfeitamente. Obrigado por fazer esta pergunta. Tenha um ótimo dia. Njoy :)

Kamlesh
fonte
também podemos definir essas configurações no trabalho cron (tarefa agendada) em servidores compartilhados, dedicados e na nuvem para redefinir ou importar o banco de dados periodicamente automaticamente.
Kamlesh