MySQL에서 .sql 파일을 가져 오는 방법은 무엇입니까?


39

MySQL Workbench를 사용하여 .sql 파일을 가져 오려고 하는데이 오류가 발생합니다.

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

먼저 .sql 파일과 동일한 이름의 빈 데이터베이스를 만들었지 만 작동하지 않습니다. 또한 다음을 사용하여 mysql 명령 클라이언트로 시도했습니다.

mysqldump -u root database > file.sql 

그러나 SQL 구문에 오류가 있다고 말합니다. 또한 file.sql을 설정 해야하는 경로를 모르겠습니다.


아래의 mysql> use mydatabase를 사용하여 mysqldump를 가져올 수있었습니다. mysql> 소스 sql_file.sql;
Giridharan Venugopal

답변:


49

수출:

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

수입:

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

9
은없는가있다 아무 사이의 공간 -ppassword
tombom

비밀번호가 없으면 어떻게합니까?

그런 다음 비밀번호 매개 변수를 건너 뛰십시오.
Kazimieras Aliulis

파이핑 ( mysqldump db -uuser -ppass|mysql new_db -uuser -ppass)을 사용하면 중간 파일을 사용할 필요가 없습니다.
Pacerier

2
이것이 작동하려면 데이터베이스가 MySQL에 존재해야한다고 생각합니다.
누 메논

28

.sql 파일을 이미 연결된 사용자로 데이터베이스 방식으로 가져올 수도 있습니다.

mysql> use your_database_name;

mysql> source file.sql;

3
소스 D : /path/file.sql; 훌륭하게 작동합니다! 백 슬래시 대신 프론트 슬래시를 기억하십시오.
Imdad

6

source <filename>작동하지 않을 때 덤프 파일을 가져 오는 다른 방법 은 다음을 수행하는 것입니다.

덤프

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

수입

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

5

juergen d의 대답 은 물론 정확합니다. 그러나 오류 메시지를 고려하면 다음과 같이 시작 줄에서 SQL 파일에 추가 할 수도 있습니다.

USE your_database_name;

또한 작업을 수행하고 워크 벤치에서 가져올 수 있습니다.

를 사용 mysqldump하면 내 보낸 파일이 현재 폴더에 저장됩니다. 어떤 경로에 있는지는 중요하지 않습니다. 명령 줄에서 가져올 때 동일한 폴더에 있거나 파일 경로를 지정해야합니다. 그러나 어쨌든 폴더 트리에서 파일을 선택 해야하는 Workbench와 같은 시각적 도구를 사용하는 경우에는 그렇지 않습니다.


2

명령에 비밀번호가 없습니다. 다음을 사용하십시오.

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

1

Windows의 경우, MySQL 서버 설치 디렉토리 (예에 C:\Program Files\MySQL\MySQL Server 5.5에서) my.ini file, 아래에 다음 줄을 추가 [mysqld]서버 섹션에서 :

max_allowed_packet = 16M

그리고 변경 사항을 저장하십시오. (저장이 허용되지 않으면 바탕 화면에 복사하여 붙여 넣은 후 다시 편집 한 다음 같은 위치에 붙여 넣으십시오.)

그런 다음 MySQL 서버를 다시 시작하십시오.

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