it-swarm-ko.tech

MySQL에서 명령 줄을 사용하여 SQL 파일을 가져 오는 방법은 무엇입니까?

phpMyAdmin에서 내보내기가 가능한 .sql 파일이 있습니다. 명령 줄을 사용하여 다른 서버로 가져 오려고합니다.

나는 Windows Server 2008 R2 설치가 있습니다. .sql 파일을C 드라이브에 넣었습니다.이 명령을 시도했습니다.

database_name < file.sql

작동하지 않아 구문 오류가 발생합니다.

  • 문제없이이 파일을 어떻게 가져올 수 있습니까?
  • 먼저 데이터베이스를 만들어야합니까?
1614
Jaylen

시험:

mysql -u username -p database_name < file.sql

MySQL 옵션 을 확인하십시오.

Note-1 : SQL 파일 file.sql의 전체 경로를 사용하는 것이 더 좋습니다.

Note-2 : 원래 데이터베이스의 루틴 및 트리거를 유지하려면 -R--triggers를 사용하십시오. 기본적으로 복사되지 않습니다.

Note-3 이미 존재하지 않는 mysql으로부터 (비어있는) 데이터베이스를 생성해야하며, 내 보낸 SQL은 CREATE DATABASE 옵션 (--no-create-db 또는 -n 옵션으로 내 보낸)을 가져 오기 전에 포함하지 않아야합니다.

2955
bansi

mysqldump 는 데이터베이스 전체를 백업하는 데 주로 사용됩니다 :

Shell> mysqldump db_name > backup-file.sql

다음과 같이 덤프 파일을 다시 서버에로드 할 수 있습니다.

UNIX

Shell> mysql db_name < backup-file.sql

Windows 명령 프롬프트와 동일합니다.

mysql -p -u [user] [database] < backup-file.sql

PowerShell

C:\> cmd.exe /c "mysql -u root -p db_name < backup-file.sql"

MySQL 명령 행

mysql> use db_name;
mysql> source backup-file.sql;
612
vladkras

거대한 파일을 가져 오는 데 걸린 시간과 관련하여 가장 중요한 것은 MySQL의 기본 설정이 autocommit = true이기 때문에 시간이 더 걸리는 것입니다. 파일을 가져 오기 전에이를 설정하고 가져 오기가 어떻게 작동하는지 확인해야합니다.

당신은 다음과 같은 일을 할 필요가 있습니다.

mysql> use db_name;

mysql> SET autocommit=0 ; source the_sql_file.sql ; COMMIT ;
252
Paresh Behede

위의 문제에 대한 모든 대답 중에서 이것은 가장 좋은 답변입니다.

 mysql> use db_name;
 mysql> source file_name.sql;
92
Manoj Kumar

이 명령을 사용하여 명령 줄에서 SQL을 가져올 수 있습니다.

mysql -u username -p password db_name < file.sql

예를 들어, 사용자 이름이 root이고 암호가 password 인 경우. 그리고 데이터베이스 이름은 bank이고 SQL 파일은 bank.sql입니다. 그런 다음 간단히 이렇게하십시오.

mysql -u root -p password bank < bank.sql

SQL 파일의 위치를 ​​기억하십시오. SQL 파일이 Desktop 폴더/디렉토리에 있으면 데스크탑 디렉토리로 이동하여 다음과 같은 명령을 입력하십시오.

~ ? cd Desktop
~/Desktop ? mysql -u root -p password bank < bank.sql

그리고 당신이 Project 디렉토리에 있고 SQL 파일이 Desktop 디렉토리에 있다면. Project 디렉토리에서 액세스하려면 다음과 같이 할 수 있습니다.

~/Project ? mysql -u root -p password bank < ~/Desktop/bank.sql
60
Amrit Dhungana
  1. MySQL 커맨드 라인 열기
  2. Mysql bin 디렉토리의 경로를 입력하고를 누릅니다. Enter
  3. Mysql 서버의 bin 폴더에 SQL 파일을 붙여 넣습니다.
  4. MySQL에 데이터베이스를 생성하십시오.
  5. SQL 파일을 가져올 특정 데이터베이스를 사용하십시오.
  6. source databasefilename.sql 및 Enter
  7. SQL 파일이 성공적으로 업로드되었습니다.
57
user4412947

이미 데이터베이스를 사용하고 있다면 다음을 사용하여 dump 또는 sql 파일을 가져 오십시오

mysql -u username -p database_name < file.sql

mySQL에서 관련 데이터베이스 (비어 있음)를 만들 필요가 없다면 터미널이나 cmd에서 다음 명령을 실행하여 MySQL 콘솔에 처음 로그온하십시오

mysql -u userName -p;

프롬프트가 나타나면 암호를 입력하십시오.

다음으로 데이터베이스를 생성하고 사용하십시오.

mysql>create database yourDatabaseName;
mysql>use yourDatabaseName;

그런 다음 sql 또는 dump 파일을 다음 위치에서 데이터베이스로 가져옵니다.

mysql> source pathToYourSQLFile;

참고 : 터미널이 dump 또는 sql 파일이있는 위치에 있지 않으면 위의 상대 경로를 사용하십시오.

44

나를 위해 일한 해결책은 아래와 같습니다.

Use your_database_name;
SOURCE path_to_db_sql_file_on_your_local;
40
Shiks

MySQL 실행 파일이있는 디렉토리로 이동하십시오. username에 대해서는 -u, 암호를 묻는 경우에는 -p :

C:\xampp\mysql\bin>mysql -u username -ppassword databasename < C:\file.sql
32
Tanmay Patel

단일 데이터베이스를 가져 오려면 다음 명령을 사용하십시오.

mysql -u username -p password dbname < dump.sql

여러 데이터베이스 덤프를 가져 오려면 다음 명령을 사용하십시오.

mysql -u username -p password < dump.sql
24
Leopathu

아래처럼 zcat을 사용하여 gzipped (압축) 파일을로드 할 수도 있습니다.

zcat database_file.sql.gz | mysql -u username -p -h localhost database_name
23
Francesco Casula

데이터베이스를 SQL 파일로 덤프하려면 다음 명령을 사용하십시오

mysqldump -u username -p database_name > database_name.sql

SQL 파일을 데이터베이스로 가져 오기 (SQL 파일과 동일한 디렉토리에 있는지 또는 파일의 전체 경로를 제공하는지 확인)

mysql -u username -p database_name < database_name.sql
23
Adeleke Akinade
mysql --user=[user] --password=[password] [database] < news_ml_all.sql
15
user3546602

스키마로 가져 오는 가장 쉬운 방법은 다음과 같습니다.

Mysql에 로그인하고 아래의 명령을 실행한다. 

mysql> use your_db_name;

mysql> source /opt/file.sql;
15
Ammad

한 번에 여러 SQL 파일을 가져 오려면 다음을 사용하십시오.

# Unix-based solution
for i in *.sql;do mysql -u root -pPassword DataBase < $i;done

간단한 가져 오기 :

# Unix-based solution
mysql -u root -pPassword DataBase < data.sql

WAMP :

#mysqlVersion replace with your own version
C:\wamp\bin\mysql\mysqlVersion\bin\mysql.exe -u root -pPassword DataBase < data.sql

XAMPP의 경우 :

C:\xampp\mysql\bin\mysql -u root -pPassword DataBase < data.sql
13

.sql 파일에 CREATE DATABASE IF NOT EXISTS db_nameUSE db_name 문이 포함되어 있으면 명령 줄에서 데이터베이스 이름을 지정할 필요가 없습니다.

.sql 파일에 언급 된 데이터베이스가없는 경우 데이터베이스를 만들 수있는 권한이있는 사용자와 연결되어 있는지 확인하십시오.

12
Reuben

데이터베이스 가져 오기

  1. 운전하기 :

    command: d:
    
  2. MySQL 로그인

    command: c:\xampp\mysql\bin\mysql -u root -p
    
  3. 그것은 pwd를 요구할 것이다. 그것을 입력하십시오 :

    pwd
    
  4. 데이터베이스 선택

    use DbName;
    
  5. 파일 이름 제공

    \.DbName.sql
    
11
Pritam Chaudhari

--force 옵션 추가 :

mysql -u username -p database_name --force < file.sql
9
ktaria

MySQL이있는 디렉토리로 이동하십시오.

 c:\mysql\bin\> mysql -u username -p password database_name <
 filename.sql

또한 모든 데이터베이스를 덤프하려면 -all-databases 옵션을 사용하고 데이터베이스 이름을 더 이상 지정하지 않아도됩니다.

mysqldump -u username -ppassword –all-databases > dump.sql

또는 SQLyog와 같은 일부 GUI 클라이언트를 사용하여이를 수행 할 수 있습니다.

8
Sathish D

다음 명령은 Windows 7 on WAMP 에서 의 명령 줄 (cmd)에서 나를 위해 작동합니다.

d:/wamp/bin/mysql/mysql5.6.17/bin/mysql.exe -u root -p db_name < database.sql
7
victor

나는 그것이 Mac OS X 를 사용하는 사람들에게 유용 할 수 있다고 생각했다.

/Applications/xampp/xamppfiles/bin/mysql -u root -p database < database.sql

xamppmamp 또는 다른 웹 서버로 바꿉니다.

7
Giri

대부분의 대답은 여기에 간단한 명령을 언급하는 반면

mysql -u database_user -p [db_name] <database_file.sql

오늘날 데이터베이스와 테이블은이 명령이 충분하지 않은 utf8- 데이터 정렬을 가지고 있습니다. 내 보낸 테이블에 utf8- 데이터 정렬이 있으면이 명령을 사용해야합니다.

mysql -u database_user -p --default-character-set = utf8 [db_name] <database_file.sql

Surley는 다른 문자셋에도 사용할 수 있습니다. 올바른 표기법을 표시하는 방법은 다음과 같습니다.

https://dev.mysql.com/doc/refman/5.7/en/show-collation.html

한 논평은 데이터베이스가 존재하지 않는다면 먼저 빈 데이터베이스를 생성해야한다고 언급했다. 어떤 경우에는 맞지만 내보내기 파일에 따라 달라질 수 있습니다. 내 보낸 파일에 이미 데이터베이스를 만드는 명령이 포함되어 있으면 데이터베이스를 별도의 단계로 작성하지 않아도되므로 가져 오기 오류가 발생할 수 있습니다. 따라서 가져 오기에서 어떤 명령이 파일에 포함되어 있는지 알기 위해 먼저 파일을 살펴 보는 것이 좋습니다. 특히 내보내기에 파일이 매우 커서 편집기에서 읽기가 어려운 경우에는 내보내기 할 때 설정을 기록하는 것이 좋습니다.

여기에 나열되고 설명 된 명령 매개 변수가 더 많이 있습니다.

https://dev.mysql.com/doc/refman/5.7/en/mysql-command-options.html

다른 데이터베이스 버전을 사용하는 경우 해당 매뉴얼 버전도 검색하십시오. 언급 된 링크는 MySQL 버전 5.7을 참조합니다.

6
David
mysql -u root -p password -D database_name << import.sql

자세한 내용은 mysql 도움말을 사용하십시오. mysql --help

나는 이것이 우리의 맥락에서 유용한 옵션이라고 생각한다.

[~]$ mysql --help
mysql  Ver 14.14 Distrib 5.7.20, for osx10.12 (x86_64) using  EditLine wrapper
Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.                                                                                                                                         
Usage: mysql [OPTIONS] [database]
  -?, --help          Display this help and exit.
  -I, --help          Synonym for -?
  --bind-address=name IP address to bind to.
  -D, --database=name Database to use.
  --delimiter=name    Delimiter to be used.
  --default-character-set=name Set the default character set.
  -f, --force         Continue even if we get an SQL error.
  -p, --password[=name] Password to use when connecting to server.
  -h, --Host=name     Connect to Host.
  -P, --port=#        Port number to use for connection or 0 for default to, in order of preference, my.cnf, $MYSQL_TCP_PORT, /etc/services, built-in default (3306).
  --protocol=name     The protocol to use for connection (tcp, socket, pipe,
  -s, --silent        Be more silent. Print results with a tab as separator, each row on new line.
  -v, --verbose       Write more. (-v -v -v gives the table output format).
  -V, --version       Output version information and exit.
  -w, --wait          Wait and retry if connection is down.

큰 데이터베이스를 가져오고 진행 막대가없는 경우 재미 있습니다. 파이프 뷰어를 사용하고 파이프를 통한 데이터 전송을보십시오.

Mac의 경우 brew install pv Debian/Ubuntu의 경우 apt-get install pv. 기타는 http://www.ivarch.com/programs/pv.shtml 을 참조하십시오.

pv import.sql | mysql -u root -p password -D database_name

1.45GiB 1:50:07 [339.0KiB/s]   [=============>      ] 14% ETA 11:09:36
1.46GiB 1:50:14 [ 246KiB/s]     [=============>      ] 14% ETA 11:09:15
1.47GiB 1:53:00 [ 385KiB/s]     [=============>      ] 14% ETA 11:05:36
6
Siva Praveen

때로는 정의 된 포트뿐만 아니라 서버 IP 주소 그 데이터베이스의 문제도 ...

mysql -u user -p user -h <Server IP> -P<port> (DBNAME) < DB.sql 
5
JohnSharath

나는 데이터베이스가 생성되지 않은 문제에 계속해서 달했다.

나는 이것을 이렇게 고쳤다.

mysql -u root -e "CREATE DATABASE db_name"
mysql db_name --force < import_script.sql
5
David Silva Smith

백업을 위해 BAT 파일을 만들고 Task Scheduler 를 사용하여이 BAT 파일을 실행하십시오. 데이터베이스를 백업합니다. 다음 줄을 복사하여 메모장 에 붙여 넣은 다음 .bat 파일을 저장하고 시스템에서 실행하십시오.

@echo off
for /f "tokens=1" %%i in ('date /t') do set DATE_DOW=%%i
for /f "tokens=2" %%i in ('date /t') do set DATE_DAY=%%i
for /f %%i in ('echo %date_day:/=-%') do set DATE_DAY=%%i
for /f %%i in ('time /t') do set DATE_TIME=%%i
for /f %%i in ('echo %date_time::=-%') do set DATE_TIME=%%i

"C:\Program Files\MySQL\mysql server 5.5\bin\mysqldump" -u username -ppassword mysql>C:/%DATE_DAY%_%DATE_TIME%_database.sql
5
user3728517

https://stackoverflow.com/a/17666285/1888983과 유사하게
나를위한 주요 차이점 :

  1. 데이터베이스가 먼저 존재해야합니다.
  2. -p와 암호 사이에 공백이 없어야합니다.

Shell> mysql -u root -ppassword #note: no space between -p and password
mysql> CREATE DATABASE databasename;
mysql> using databasename;
mysql> source /path/to/backup.sql

Fedora 26에서 MariaDB 실행하기.

4
jozxyqk

정보를 얻으려면 방금 기본 루트 + withoutpassword가 있었지만 위의 모든 대답과 작동하지 않았습니다. 

  • 모든 권한과 암호로 새로운 사용자를 만들었습니다. 그것은 작동합니다. 

  • -Password WITHOUT SPACE. 

4
Paul Leclerc

저는 PowerShell 5에서 Windows 10을 사용하고 있으며 거의 ​​모든 "유닉스 계열"솔루션이 저에게 맞지 않습니다.

> mysql -u[username] [database-name] < my-database.sql
At line:1 char:31
+ mysql -u[username] [database-name] < my-database.sql
+                               ~
The '<' operator is reserved for future use.
    + CategoryInfo          : ParserError: (:) [], ParentContainsErrorRecordException
    + FullyQualifiedErrorId : RedirectionNotSupported

나는이 명령을 사용하여 끝난다.

> type my-database.sql | mysql -u[username] -h[localhost] -p [database-name]

그리고 완벽하게 작동합니다. 잘하면 도움이됩니다.

@ Francesco Casulaanswer btw. 감사합니다.

4
Fery Wardiyanto

다음 단계는 file.sql를 MySQL 데이터베이스에 업로드하는 데 도움이됩니다.

1 단계 : file.sql.Zip를 모든 디렉토리에 업로드하고 압축을 풉니 다. 
노트 : Sudo apt-get install unzip : Sudo apt-get unzip file.sql.Zip
2 단계 : 이제 해당 디렉토리로 이동하십시오. 예 : cd /var/www/html

3 단계 : mysql -u username -p database-name < file.sql
비밀번호를 입력하고 업로드가 완료 될 때까지 기다립니다.

4
Ramesh Sinha

명령 줄에 자격 증명을 제공하는 것은 좋은 생각이 아닙니다. 위의 답변은 훌륭하지만 언급하는 것을 게을리하지 않습니다.

mysql --defaults-extra-file=etc/myhost.cnf database_name < file.sql

여기서 etc/myhost.cnf는 호스트, 사용자, 암호가 들어있는 파일이며 명령 행에서 암호가 노출되지 않도록합니다. 다음은 샘플입니다.

[client]
Host=hostname.domainname
user=dbusername
password=dbpassword
3
ChuckCottrill

데이터베이스로 가져 오기 :

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

데이터베이스에서 내보내기 : -

mysqldump -u username -p database_name>/파일 경로/file_name.sql

이 명령들 후에 Prompt는 당신의 mysql 암호를 물어볼 것입니다.

3
NeeruSingh

데이터를 도커 컨테이너로 가져 오는 경우 다음 명령을 사용하십시오. 구성에 맞게 사용자 (-u), 데이터베이스 (-D), 포트 (-P) 및 호스트 (-h)를 조정하십시오.

mysql -u root -D database_name -P 4406 -h localhost --protocol=tcp -p < sample_dump.sql
2
Hamfri

Mac OS X에서 MAMP 를 사용하는 경우 다음이 도움이 될 수 있습니다.

/applications/MAMP/library/bin/mysql -u MYSQL_USER -p DATABASE_NAME < path/to/database_sql/FILE.sql

MYSQL_USER는 기본적으로 root입니다.

1
HowardDuck

특정 데이터베이스 내보내기 :

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

이것은 CCR 및 KIT 데이터베이스를 내보낼 것입니다 ...

내 보낸 모든 데이터베이스를 특정 MySQL 인스턴스로 가져 오기 (덤프 파일이있는 위치에 있어야 함) :

  djimi:> mysql --user=root --Host=localhost --port=3306 --password=test < ccr_kit_local.sql
1
Musa

우분투에서

 mysql -u root -p
 CREATE database dbname;
 use dbname;
 source /home/computername/Downloads/merchantapp.sql
 exit;

Windows의 경우

SQL 파일을 다운로드하여 C:\xampp\mysql\bin에 저장하십시오.

그런 다음 C:\xampp\mysql\bin 명령 프롬프트를여십시오.

 C:\xampp\mysql\bin> mysql -u username -p database_name < file.sql
1
Shabeer Sha

터미널을 통해 데이터베이스를 가져 오려면

SQL 파일이있는 폴더로 이동하십시오.

아래 명령 실행

mysql -u database_user_name -p database_name < sql_file_name.sql

암호를 묻습니다. 데이터베이스 암호를 입력하십시오. 데이터베이스에 데이터를 가져 오는 데 몇 초가 걸립니다.

1
Dev Semicolon

예를 들어

C:\xampp\mysql\bin 에 소프트웨어를 설치했고, 내 파일은 C:\Users\file.sql 주소에 있습니다.

usernamedatabase_name를 설정하면됩니다.

참고 : 먼저 수동으로 데이터베이스 (database_name)를 만들어야합니다.

다음 명령을 실행하십시오.

cd C:\xampp\mysql\bin && mysql -u username -p database_name < C:\Users\file.sql

그런 다음 비밀번호를 입력하십시오. 

1
Mahdi Bashirpour

폴더에 여러 개의 SQL 파일이 있고 Git Bash 를 설치 한 경우 /이 명령을 사용하여 여러 파일을 가져올 수 있습니다.

cd /my-project/data

cat *.sql | /c/xampp/mysql/bin/mysql -u root -p 1234 myProjectDbName
1
o0omycomputero0o

창에서 아래 명령을 사용하여 SQL 덤프에서 데이터를 가져올 수 있습니다.

C :\Program Files\MySQL\MySQL 서버 5.7\bin> mysql -u <> -p <> DBName <파일 위치\query.sql

여기서 -u는 사용자 이름 뒤에 -p 다음에 MySQL 암호가옵니다. Prompt에 입력 할 수 있으므로 명령에서 암호를 건너 뛸 수 있습니다.

1
Ripudaman Singh

이 쿼리를 시도 할 수 있습니다.

내보내기 : mysqldump -u username --password = your_password database_name> file.sql

가져 오기 : mysql -u username --password = your_password database_name <file.sql

이 링크 다음 세부 정보 :

https://chartio.com/resources/tutorials/importing-from-and-exporting-to-files-using-the-mysql-command-line/

1

1) wamp 또는 xampp 디렉토리로 이동 예제

cd d : /wamp/bin/mysql/mysql5.7.24/bin

2) mysql -u root -p DATABASENAME <PATHYOUDATABASE_FILE

0
Naveen dev

로컬 데이터베이스 서버로 가져 오는 경우 다음을 수행 할 수 있습니다.

mysql -u database_user -p < database_file.sql

원격 데이터베이스 서버의 경우 다음을 수행하십시오.

mysql -u database_user -p -h remote_server_url < database_file.sql
0

이 시도:-

C:\xampp\mysql\bin>mysql -u root -p database_name --force < C:\file.sql
0
Amarat

당신이 사용할 수있는:

mysql -u<user> -p<pass> <db> < db.sql

예:

mysql -uroot -proot db < db.sql

안녕!