■ mysqlimport 프로그램 소개
커맨드 라인 인터페이스로 되어 있는 프로그램으로 LOAD Data SQL과 같은 방법으로 데이터를 테이블에 로드합니다. mysql 프로그램에서 사용되는 LOAD DATA문법이며 이 구문을 알고 있다면 좀더 손쉽게 사용할 수 있습니다. 이 LOAD DATA문은 이 블로그에서 별로 페이지로 제공하고 있습니다.
참고 URL : https://myinfrabox.tistory.com/18?category=804726
mysqlimport프로그램을 사용하면서 자주 사용하는 옵션이 있다면 my.cnf안에 [client], [mysqlimport]란 그룹 옵션을 만들고 지원되는 옵션을 이 항목에 추가해서 사용할 수 있습니다. 이렇게 하면 터미널에서 실행할 때 추가 옵션을 굳이 기재하지 않더라도 이 환경을 읽어 들여 사용할 수 있습니다.
기본 사용방법은 다음과 같습니다.
사용법
shell> mysqlimport [options] db_name textfile1 [textfile2 ...]
한가지 기억할것이 있습니다. 위의 옵션에서 보시면 알겠지만 db_name은 있는데 table_name 즉 테이블 이름이 없습니다. 테이블 이름이 없는데 어떻게 데이터를 적재할 수 있을까요???
방법은 바로 테이블 이름과 파일이름을 맵핑시키는 것입니다. 예를들어 파일이름이 table_1이라면 db_name이름안에 이 테이블 이름과 같은 table_1에 데이터를 가져옵니다. 파일이름이 table_1.txt라면 어떨까요?? 그래도 마찬가지로 table_1에 가져옵니다. 확장자는 중요하지 않습니다. table_1.file, table_1.opt등등 어떤 확장명이 오더라도 파일 이름이 중요합니다. 파일이름에 테이블을 매핑시켜 데이터를 가져옵니다.
■ 옵션설명
--help, -? :
도움말을 출력합니다.
--character-sets-dir=dir_name :
캐릭터셋이 설치된 디렉토리를 나타냅니다.
--columns=column_list, -c column_list :
이 옵션은 쉼표로 구분 된 열 이름 목록을 값으로 사용합니다. 열 이름의 순서는 데이터 파일 열을 테이블 열과 일치시키는 방법을 나타냅니다.
--compress, -C :
가능하면 클라이언트와 서버사이의 모든 정보를 압축합니다.
--debug[=debug_options], -# [debug_options] :
디버그 로그를 작성합니다. 일반적인 debug_option들의 문자는 d:t:o,file_name 입니다. 기본값은 d:t:o입니다.
--debug-check :
프로그램을 종료할 때 디버깅 정보를 출력합니다.
--debug-info :
프로그램을 종료할 때 디버깅정보, 메모리, CPU사용량을 출력합니다.
Print debugging information and memory and CPU usage statistics when the program exits.
--default-character-set=charset_name :
기본적으로 사용할 캐릭터 셋같은 캐릭터 이름을 지정합니다.
--delete, -D :
임포트하기 전에 테이블을 비웁니다.
--fields-terminated-by : 각 필드의 구분자 입니다.
--fields-enclosed-by :
필드를 구분지을 수 있는 시작과 끝 문자 입니다.. '문자' -> 싱글쿼테이션(')을 의미합니다.
--fields-optionally-enclosed-by : 필요할경우 필요한 구분자를 더 추가 합니다.
--fields-escaped-by : 해당필드를 뺍니다.
--lines-terminated-by : 라인(행) 구분자 입니다.
--force, -f :
오류를 무시합니다. 예를들어 테이블을 위한 텍스트 파일이 존재하지않으면 남아있는 다른 파일들을 계속 처리합니다. --force가 없으면, mysqlimport는 텍스트 이름에 맞는 테이블이 존재하지 않으면 종료됩니다.
--host=host_name, -h host_name
데이터를 임포트할 서버를 지정합니다.
--ignore, -i
--replace 옵션과 유사합니다. --replace옵션을 참고하세요.
--ignore-lines=N
데이터 파일안에 처음부터 N라인까지 무시합니다.
--local, -L
기본적으로 파일은 MySQL서버의 로컬에서 읽습니다. 만약 원격 클라이언트에서 서버로 덤프 데이터를 전송하려면 이 옵션을 사용해야 합니다.
--lock-tables, -l
텍스트 덤프 파일을 처리하기 전에 모든 테이블을 잠급니다. 이렇게하면 모든 테이블이 서버에서 동기화됩니다.
--low-priority
테이블을로드 할 때 LOW_PRIORITY를 사용합니다. 이는 테이블 레벨 잠금 만 사용하는 스토리지 엔진 (예 : MyISAM, MEMORY 및 MERGE)에만 영향을줍니다.
--password[=password], -p[password]
사용자 암호를 입력합니다.
--port=port_num, -P port_num
접속 포트번호를 입력합니다.
For TCP/IP connections, the port number to use.
--print-defaults
프로그램 이름과 옵션 파일에서 얻는 모든 옵션을 인쇄합니다.
--protocol={TCP|SOCKET|PIPE|MEMORY}
서버 연결에 사용할 연결 프로토콜입니다. 다른 연결 매개 변수가 일반적으로 원하는 프로토콜 이외의 프로토콜을 사용할 때 유용합니다. 허용 가능한 값에 대한 자세한 내용은 4.2.4 절“명령 옵션을 사용하여 MySQL 서버에 연결”을 참조하십시오.
--replace, -r
--replace 및 --ignore 옵션은 고유 키 값에서 기존 행을 복제하는 입력 행 처리를 제어합니다. --replace를 지정하면 동일한 고유 키 값을 가진 기존 행이 새 행으로 바뀝니다. --ignore를 지정하면 고유 키 값에서 기존 행을 복제하는 입력 행을 건너 뜁니다. 두 옵션 중 하나를 지정하지 않으면 중복 키 값이 발견되면 오류가 발생하고 나머지 텍스트 파일은 무시됩니다.
--silent, -s
사일런트 모드입니다. 에러가 발생할때만 출력됩니다.
Silent mode. Produce output only when errors occur.
--socket=path, -S path
localhost, Unix 소켓 파일 또는 Windows에서 사용할 명명 된 파이프의 이름에 연결하는 경우 사용합니다.
--user=user_name, -u user_name
MySQL 서버 적속 유저입니다.
--use-threads=N
N개의 쓰레드를 생성해서 병렬로 파일을 로드합니다.
--verbose, -v
verbose모드입니다. 프로그램에 관련된 모든 정보를 출력합니다.
Verbose mode. Print more information about what the program does.
--version, -V
버전 정보를 출력합니다.
샘플 명령을 보여드립니다.
Here is a sample session that demonstrates use of mysqlimport:
■ 예제
# 테이블 만들기
shell> mysql -e 'CREATE TABLE imptest(id INT, n VARCHAR(30))' test
# 편집기로 예제 데이터 만들기
shell> vi imptest.txt
100 Max Sydow : 공백은 탭키로 만듭니다.
101 Count Dracula : 공백은 탭키로 만듭니다.
:wq
# 파일내용 확인해보기
shell> od -c imptest.txt
0000000 1 0 0 \t M a x S y d o w \n 1 0
0000020 1 \t C o u n t D r a c u l a \n
0000040
# 원격 클라이언트에서 수행하기
반드시 --local 옵션을 입력해야 합니다.
shell> mysqlimport --local test imptest.txt
test.imptest: Records: 2 Deleted: 0 Skipped: 0 Warnings: 0
# 확인
shell> mysql -e 'SELECT * FROM imptest' test
+------+---------------+
| id | n |
+------+---------------+
| 100 | Max Sydow |
| 101 | Count Dracula |
+------+---------------+
'Databases > MySQL' 카테고리의 다른 글
[MySQL][Error] Configure시 CMake Boost 처리 방법 (0) | 2020.04.26 |
---|---|
[MySQL][Backup n Recovery] Binary Log 를 이용하여 특정 시점 복구하기 (3) | 2020.04.25 |
[MySQL][Master-Slave] GTID를 이용한 복제 - 구성방법 (0) | 2020.04.09 |
[MySQL][Master-Slave] GTID를 이용한 복제 - 이론 (0) | 2020.04.09 |
[MySQL][Backup n Recovery] mysqldump 프로그램 제대로 파해치기 (0) | 2020.04.02 |