SQL 파일을 mysql로 ​​가져 오기


191

라는 데이터베이스가 nitm있습니다. 거기에 테이블을 만들지 않았습니다. 그러나 데이터베이스에 필요한 모든 데이터가 들어있는 SQL 파일이 있습니다. 파일은 nitm.sqlC:\ drive있습니다. 이 파일은 크기가 약 103MB입니다. wamp 서버를 사용하고 있습니다.

MySQL 콘솔에서 다음 구문을 사용하여 파일을 가져 왔습니다.

mysql>c:/nitm.sql;

그러나 이것은 효과가 없었습니다.



답변:


406

mysql 콘솔에서 :

MySQL> use DATABASE_NAME;

MySQL> source path/to/file.sql;


상대 경로를 참조하는 경우 경로 앞에 슬래시가 없는지 확인하십시오 ... 그것을 깨닫는 데 시간이 걸렸습니다! lol


36
상대 참조를 만드는 경우 경로 앞에 슬래시가 필요하지 않습니다. 루트에서 출발한다면, 즉/home/user/file.sql
Wes Johnson

5
마음에
들지

4
Chrome에서는 북마크라고하며 주소 표시 줄에서 별표를 클릭하면됩니다.;)
Andrew

2
@ ArseniuszŁozicki는 질문을 추가하면 답을 얻을 수 있습니다 :) 그게 내가하는 일입니다.
mandza

2
이 답변 path/to/file.sql에 mysql 클라이언트 가 있는 로컬 파일 시스템 경로 라는 것을 추가하십시오 . MySQL 서버가 경로를 서버 측에 예상하는 경우가 있습니다. IE SELECT ... INTO OUTFILE는 파일을 MySQL 서버의 경로에 놓습니다!
Devy

90

마지막으로 문제를 해결했습니다. `nitm.sql` 파일을 mysql 폴더의 bin 파일에 넣고 다음 구문을 사용했습니다.

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

그리고 이것은 효과가있었습니다.


8
이것은 OP가 요청 한대로 mysql 콘솔이 아니라 콘솔에서 mysql로입니다. Robert Anthony Tribiana의 답변은 mysql 콘솔에서 수행하는 방법을 설명합니다.
halfpastfour.am

이것은 문제를 해결하는 정확한 방법이 아니며 해결책이 아닙니다.
Ashish Ratan

4
당신은 이것이 이것에 대답 한 OP라는 것을 알고 있습니까?
웨스

mysql에 암호가 필요하면 방법이 작동하지 않는 것입니다. @d -_- b
shellbye

52

당신이 wamp를 사용하고 있다면 이것을 시도 할 수 있습니다. use your_Database_name먼저 입력하십시오 .

  1. wamp 서버 아이콘을 클릭 한 다음 찾아서 MYSQL > MSQL Console실행하십시오.

  2. 암호가 없으면 Enter 키를 누르고 다음을 입력하십시오.

    mysql> use database_name;
    mysql> source location_of_your_file;

    비밀번호가 있으면 비밀번호를 입력 할 수 있습니다. 먼저 비밀번호를 입력 한 후 다음을 입력하십시오.

    mysql> use database_name;
    mysql> source location_of_your_file;

location_of_your_file ~처럼 보일 것이다 C:\mydb.sql

따라서 추천은 mysql> source C : \ mydb.sql입니다.

이런 종류의 SQL 덤프 가져 오기는 BIG SQL FILE에 매우 유용합니다.

파일 mydb.sq을 디렉토리에 복사했습니다 C:. 실행하려면 대문자 C :

그리고 그게 다야.


1
표시된 답변은 터미널 또는 콘솔을 통해 MySQL에 액세스 할 수있는 MySQL을 실행하는 모든 환경에서 작동하는 동안이 답변은 WAMP와 같습니다.
halfpastfour.am

26

Windows에서 위의 제안으로 오류 (파일을 찾을 수 없거나 알 수없는 db)가 나타나면 슬래시를 두 배로 늘리십시오.

mysql 콘솔에서 :

mysql> use DATABASE_NAME;

mysql> source C://path//to//file.sql;

1
Windows 컴퓨터에서 단일 슬래시가 나를 위해 일했습니다.
Manoj Shrestha

17

좋아, Linux를 사용하고 있지만 Windows에서도 마찬가지라고 생각합니다. 명령 프롬프트에서 직접 수행 할 수 있습니다

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

또는 mysql 프롬프트에서 다음을 사용할 수 있습니다.

mysql>source sqlfilename.sql

그러나이 두 가지 접근 방식은 모두 표시되는 결과에 고유 한 이점이 있습니다. 첫 번째 방법에서는 오류가 발생하자마자 스크립트가 종료됩니다. 더 나은 부분은 소스 파일에서 오류가 발생한 정확한 줄 번호를 알려준다는 것입니다. 그러나 오류 만 표시합니다. 오류가 발생하지 않으면 스크립트에 NOTHING이 표시됩니다. 조금 불안 할 수 있습니다. 대부분의 명령으로 스크립트를 실행하기 때문입니다.

이제 mysql 프롬프트 내에서 두 번째 접근 방식은 스크립트의 모든 다른 MySQL 명령에 대한 메시지를 표시한다는 이점이 있습니다. 오류가 발생하면 mysql 오류 메시지가 표시되지만 스크립트를 계속 진행합니다. 스크립트를 다시 실행하기 전에 돌아가서 모든 오류를 수정할 수 있기 때문에이 방법이 좋습니다. 단점은 오류가 발생한 스크립트의 줄 번호를 표시하지 않는다는 것입니다. 이것은 약간의 고통이 될 수 있습니다. 그러나 오류 메시지는 설명적인 것으로 문제의 위치를 ​​파악할 수 있습니다.

우선 OS에서 직접 명령 행 접근 방식을 선호합니다.



7

당신은 거의 사용

mysql> \. c:/nitm.sql;

다음 방법으로도 도움을받을 수 있습니다

mysql> \?

1
이 작동하지 않았다. mysql> \을 사용할 때. c : /nitm.sql; , 'c : \ nitm.sql; 파일을 열지 못했습니다'와 같은 오류가 발생했습니다. 오류 : 2
kushalbhaktajoshi

이것의 변형을 시도 했습니까? 일부 응용 프로그램은 C : \ nitm.sql을 존중합니다
Lmwangi

또한 끝에 세미콜론이 필요하지 않습니다. 제거하십시오. 또 다른 옵션은 'cd c :'이고 "\. nitm.sql"을 시도하십시오
Lmwangi

1
입력하기 전에 생각하십시오. 'cd c :'는 mySql 콘솔이 아닌 DOS 프롬프트의 명령입니다.
kushalbhaktajoshi

1
mysql> \. ~/Downloads/backups/file.sql mysql>에서 완벽하게 작동했으며 터미널 coosal응답에서도 효과가있었습니다.
gmuhammad

6

XAMPP의 로컬 호스트 cmd 창을 열고 다음을 입력하십시오.

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

주의! -p 뒤에 세미콜론 없음 암호를 입력하고 입력하십시오

use database_name;

필요한 데이터베이스를 선택하십시오.

테이블이 있는지 확인하십시오

show tables;

SQL 파일에서 가져 오기

source sqlfile.sql;

sql 파일의 위치와 섞이지 않도록 파일을 C : \ xampp \ mysql \ bin 위치에 넣었습니다.



3

사용하는 것을 잊지 마십시오

charset utf8

SQL 파일이 utf-8 인 경우 :)

따라서 다음을 수행해야합니다.

cmd.exe

mysql -u 루트

mysql> 문자셋 utf8

mysql> mydbname 사용

mysql> 소스 C : \ myfolder \ myfile.sql

행운을 빕니다 ))


3

Linux에서 mysql을 시작하기 전에 .sql 파일이 들어있는 디렉토리로 이동했습니다. 시스템 커서는 이제 파일과 같은 위치에 있으며 경로가 필요하지 않습니다. 내 날짜가 파일 이름으로 바뀌는 소스 myData.sql을 사용하십시오.

cd whatever directory

mysql - p

targetDB 연결

source myData.sql

끝난


2

커맨드 라인 (mysql 쉘이 아닌 cmd.exe)에서 다음과 같이 시도하십시오.

type c:/nite.sql | mysql -uuser -ppassword dbname

데이터베이스의 비밀번호를 만들지 않았으므로 비밀번호 입력란에 비어 있습니다. 그리고이 c : /nitm.sql | mysql -u root -p nitm 그러나 이것도 작동하지 않았습니다. 좀 더 도와 줄래?
kushalbhaktajoshi

-p를 생략해도 효과가 없었습니다. 이 'c :'와 같은 오류는 내부 또는 외부 명령, 작동 가능한 프로그램 또는 배치 파일로 인식되지 않습니다.
kushalbhaktajoshi

2

덤프에 MySQL 버전에서 지원되지 않는 기능이 포함되어 있습니까? 시작 및 종료 MySQL 주석 SET 문을 제거 할 수도 있습니다.

덤프가 Linux 버전의 MySQL (라인 엔딩)에서 나온 것인지 모르겠습니다.


mysql 주석이 달린 SET 문을 이미 삭제했습니다. 그러나 여전히 오류가 발생합니다.
kushalbhaktajoshi

MySQL 명령 셸에 로그인 한 다음 "source c : \ nite.sql"문을 사용하십시오. 올바른 데이터베이스를 선택하는 것을 잊지 마십시오.
Maickel

당신의 노력에 진심으로 감사드립니다. 감사.
kushalbhaktajoshi

2

내 wamp 서버를 D : 드라이브에 설치 했으므로 ur 명령 줄에서 다음 경로로 이동해야합니다.

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"

여기서 root 는 내 phpmyadmin의 사용자 비밀번호 입니다. phpmyadmin의 비밀번호 입니다. 만약 루트에 대한 비밀번호를 설정하지 않은 경우, db_name은 데이터베이스 (백업하는 데이터베이스 ur)이며, backupfile.sql은 UR 데이터베이스의 백업을 원하는 파일 및 백업 파일 위치 (d : \ backupfile.sql)를 컴퓨터의 다른 위치로 변경할 수도 있습니다.


1
mysql>c:/nitm.sql;

그러면 mysql 명령의 출력이 'nitm.sql;'에 기록됩니다. ( ';'해야 할 일은 무엇입니까?) 원본 파일의 사본이 있다고 가정하면 (덮어 쓰기 전에) 다음을 수행하십시오.

mysql < c:/nitm.sql

이것은 작동하지 않았습니다. ERROR 1064 <42000>과 같은 오류가 발생했습니다. SQL 구문에 오류가 있습니다. 1 행의 'mysql <c : /nitm.sql'근처에서 사용할 올바른 구문은 MySql 서버 버전에 해당하는 매뉴얼을 확인하십시오.
kushalbhaktajoshi

1

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

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

CCR 및 KIT 데이터베이스를 내 보냅니다 ...

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

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

0

Windows OS에서는 다음 명령이 적합합니다.

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

파일 이름 주위에 작은 따옴표 나 큰 따옴표가 없습니다. 경로에는 '\'대신 '/'가 포함됩니다.


0

이 작업을 수행하는 데 어려움을 겪고있는 사람들에게는 가능한 모든 답변을 시도해보십시오. Windows 2012 R2를 실행하는 VPS에서 나를 위해 일한 것은 다음과 같습니다.

  1. bin이있는 곳 어디에서나 SQL 파일을 배치하십시오. C:\Program Files\MySQL\MySQL Server 8.0\bin

  2. Windows 명령 프롬프트 열기 (cmd)

  3. 운영 C:\Program Files\MySQL\MySQL Server 8.0\bin > mysql -u [username] -p
  4. 비밀번호를 입력하십시오
  5. 명령을 실행 use [database_name];
  6. 명령 소스를 사용하여 파일 가져 오기 C://Program Files//MySQL//MySQL Server 8.0//bin//mydatabasename.sql

다른 모든 것이 실패했기 때문에 그것은 나를 위해 그것을했습니다. 도움이 될 수도 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.