명령 행을 사용하여 단일 테이블을 mysql 데이터베이스로 가져 오는 방법


141

명령 줄을 사용하여 데이터베이스를 성공적으로 가져 왔지만 이제 고통스러운 부분은 데이터가 포함 된 단일 테이블을 명령 줄을 사용하여 기존 데이터베이스로 가져 오는 방법입니다.


3
단일 테이블 만 내보내기 및 가져 오기
Shakti Singh

3
이 중복 질문을 참조하십시오. 관련 답변이있는 stackoverflow.com/q/1013852/385571
MattBianco

답변:


317

리눅스 :

명령 줄에서

 mysql -u username -p  databasename  < path/example.sql

example.sql에 테이블을 넣으십시오.

단일 테이블 가져 오기 / 내보내기 :

  1. 테이블 스키마 내보내기

    mysqldump -u username -p databasename tableName > path/example.sql

    example.sql언급 된 경로에 이름이 지정된 파일을 작성하고 create tablesql 명령을 작성하여 table을 작성합니다 tableName.

  2. 데이터를 테이블로 가져 오기

    mysql -u username -p databasename < path/example.sql

    이 명령 insert에는 table 문 형식의 데이터가 포함 된 sql 파일이 필요 합니다 tableName. 모든 insert명령문이 실행되고 데이터가로드됩니다.


2
-u가 누락되었습니다;) mysqldump -u username -p databasename tableName> path / example.sql
Kazmin

2
가져 오기에는 mysql 덤프를 사용할 필요가 없습니다. mysql -u username -p databasename tableName <path / example.sql 작업을 수행해야합니다
Prabhakar Undurthi

8
tableName이름이 모든 MySQL의 버전이 필요하고 오류를 생성하지 않기 때문에 당신은 그것을 생략 할 수도 있습니다!
mchar

1
실행할 때 mysql이 아닌 bash에 있음을 알기 전까지 구문 오류가 발생했습니다.
Christia

2
특정 테이블을 내보낼 수있는 데이터베이스에 액세스 할 수있는 경우에만 작동합니다. 그러나 데이터베이스의 전체 덤프가 있고 가져올 테이블을 체리 피킹하려는 경우이 솔루션이 작동하지 않습니다. 링크 된 게시물 전체 mysql mysqldump 파일에서 단일 테이블을 복원 할 수 있습니까? 그 문제를 해결합니다.
codeforester

34

수출:

mysqldump --user=root databasename > whole.database.sql
mysqldump --user=root databasename onlySingleTableName > single.table.sql

수입 :

전체 데이터베이스 :

mysql --user=root wholedatabase < whole.database.sql

싱글 테이블 :

mysql --user=root databasename < single.table.sql

23

데이터를 다시 내보낼 수있는 옵션이 있다면 이러한 모든 옵션이 적합합니다.

그러나 기존 SQL 파일을 사용하고 특정 테이블을 사용해야하는 경우 TimeSheet 블로그의이 perl 스크립트 를 사용하면 테이블을 별도의 SQL 파일로 추출한 다음 가져올 수 있습니다.



12

단일 테이블 가져 오기

단일 테이블을 기존 데이터베이스로 가져 오려면 다음 명령을 사용하십시오.

mysql -u username -p -D database_name < tableName.sql

참고 : SQL 파일 tableName.sql의 전체 경로를 사용하는 것이 좋습니다.


5

커맨드 라인

단일 테이블 가져 오기 / 내보내기 :

테이블 스키마 내보내기

 -> mysqldump -u your_user_name -p your_database_name table_name > test.sql

test.sql이라는 파일이 생성되고 table sql 명령이 생성되어 table_name 테이블이 생성됩니다.

데이터를 테이블로 가져 오기

 -> mysql -u your_user_name -p database_name table_name < test.sql

경로를 탐색하지 않은 경우 test.sql 파일이 동일한 디렉토리에 있는지 확인한 후 명령을 실행하십시오.


3
내 보낸 SQL 파일에는 테이블 작성을위한 관련 호출이 있으므로 명령 행에 테이블 이름을 지정할 필요가 없습니다. 당신이 필요한 전부입니다 mysql -u your_user_name -p database_name < test.sql.
Michael De Silva

1
다음은 내 보낸 테이블의 예입니다.`22 DROP TABLE IF EXISTS account_product_prices; 23 / *! 40101 SET @saved_cs_client = @@ character_set_client /; 24 / ! 40101 SET character_set_client = utf8 * /; 25 테이블 만들기 account_product_prices(`
Michael De Silva

5

우선, 데이터베이스에 로그인하여 데이터베이스에서 가져 오려는 데이터베이스 테이블을 사용할 수 없는지 확인하십시오.

사용 가능한 경우 명령을 사용하여 테이블을 삭제하십시오. 그렇지 않으면 테이블을 가져 오는 동안 오류가 발생합니다.

DROP TABLE Table_Name;

그런 다음 .sql가져올 파일 이있는 폴더로 이동 하여 터미널에서 다음 명령을 실행하십시오.

mysql -u username -p  databasename  < yourtable.sql

터미널에서 비밀번호를 입력하라는 메시지를 표시합니다. 입력하고 데이터베이스를 확인하십시오.


4

제대로 작동합니다 ...

C:\>mysql>bin>mysql -u USERNAME DB_NAME < tableNameFile.sql

.sql 파일이 현재 데이터베이스를 지정했습니다.


2

다음과 같이 CMD를 사용하여 단일 테이블을 가져올 수 있습니다.

D:\wamp\bin\mysql\mysql5.5.24\bin>mysql -h hostname -u username -p passowrd databasename < filepath

2

데이터베이스에 원하는 테이블이 이미 있으면 먼저 삭제 한 다음 아래 명령을 실행하십시오.

 mysql -u username -p  databasename  < yourtable.sql

2

서버에서 로컬로 (내보내기)

mysqldump -u username -p db_name table_name > path/filename.sql;
mysqldump -u root -p remotelab welcome_ulink > 
/home_local/ladmin/kakalwar/base/welcome_ulink.sql;

로컬에서 서버로 (가져 오기)

mysql -u username -p -D databasename < path/x/y/z/welcome_queue.sql
mysql -u root -p -D remotelab < 
/home_local/ladmin/kakalwar/instant_status/db_04_12/welcome_queue.sql

2
초보자를 위해 u는 명령을
누른

2

또한 작동합니다. 명령 형태

cd C:\wamp\bin\mysql\mysql5.5.8\bin //hit enter
mysql -u -p databasename //-u=root,-p=blank

2
  • 그것은의 조합이 될 것입니다 EXPORT INTO OUTFILELOAD DATA INFILE

  • 로 단일 테이블을 EXPORT INTO OUTFILE내 보내야합니다. 그러면 테이블 데이터가 파일로 내보내집니다. 특정 테이블을 사용하여 가져올 수 있습니다LOAD DATA INFILE

  • doc1 , doc2 참조


1

linux 명령 대신 mysql 명령으로 수행 할 수 있습니다.
1. mysql에 로그인하십시오.
mysql 명령에서 2.excute :
use DATABASE_NAME;
SET autocommit=0 ; source ABSOLUTE_PATH/TABLE_SQL_FILE.sql ; COMMIT ;


1
mysql -u root -p -D dbname < tablename.sql

1
이 코드 스 니펫은 환영하고 도움이 될 수 있지만 이것이 문제를 해결하는 방법이유에 대한 설명포함하면 크게 향상 될 것 입니다. 지금 질문하는 사람뿐만 아니라 앞으로 독자들에게 질문에 대답하고 있음을 기억하십시오! 제발 편집 설명을 추가하고, 제한 및 가정이 적용 무엇의 표시를 제공하는 답변을.
Toby Speight


0

데이터베이스의 크기에 따라 임시 데이터베이스를 사용하는 것이 해결책이 될 수 있습니다.

mysql -u [username] -p -e "create database tempdb"
mysql -u [username] -p tempdb < db.sql
mysqldump -u [username] -p tempdb _table_to_import_ > table_to_import.sql
mysql -u [username] -p maindb < table_to_import.sql

0

테이블을 데이터베이스로 가져 오려면 테이블이 이미 존재하는 경우 SQL 파일에이 행을 추가 DROP TABLE IF EXIST 'table_name'하고 command를 실행하십시오 mysql -u username -p database_name < import_sql_file.sql. 명령을 실행하기 전에 sql 파일 경로를 확인하십시오.

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