4.5.5 mysqlimport - 데이터 가져 오기 프로그램
mysqlimport 클라이언트는 LOAD DATA INFILE
SQL 문에 명령 줄 인터페이스를 제공합니다. mysqlimport에 대한 대부분의 옵션은 LOAD DATA INFILE
구문의 어구에 직접 대응하고 있습니다. 섹션 13.2.6 "LOAD DATA INFILE 구문" 을 참조하십시오.
mysqlimport는 다음과 같이 시작합니다.
shell> mysqlimport [ options ] db_name textfile1 [ textfile2 ...]
mysqlimport는 명령 행에서 지정된 텍스트 파일에 대해 파일 이름의 확장자가 있으면 그것을 제거하고 그 결과를 바탕으로 파일 내용을 가져올 테이블의 이름을 결정합니다. 예를 들어, patient.txt
, patient.text
및 patient
라고 명명 된 파일은 모든 patient
라는 이름의 테이블로 가져됩니다.
mysqlimport는 다음 옵션을 지원합니다. 이들은 명령 행 또는 옵션 파일의 [mysqlimport]
그룹과 [client]
그룹에 지정할 수 있습니다. MySQL 프로그램에서 사용되는 옵션 파일에 대한 자세한 내용은 섹션 4.2.6 "옵션 파일 사용" 을 참조하십시오.
표 4.9 mysqlimport
옵션
형식 | 설명 | 도입 |
---|---|---|
--bind-address | 지정된 네트워크 인터페이스를 사용하여 MySQL 서버에 연결 | 5.6.1 |
--columns | 이 옵션은 콤마로 분리 된 컬럼 이름 목록을 값합니다 | |
--compress | 클라이언트와 서버간에 전송되는 정보를 압축 | |
--debug | 디버깅 로그를 작성한다 | |
--debug-check | 프로그램이 종료 될 때 디버깅 정보를 출력 | |
--debug-info | 프로그램 종료시 디버그 정보, 메모리 및 CPU 통계를 출력 | |
--default-auth | 사용하는 인증 플러그인 | 5.6.2 |
--default-character-set | 기본 문자 집합을 지정 | |
--defaults-extra-file | 일반 옵션 파일 이외에 옵션 파일을 읽을 | |
--defaults-file | 지명 된 옵션 파일 만 읽을 | |
--defaults-group-suffix | 옵션 그룹의 접미사 값 | |
--delete | 텍스트 파일을 가져 오기 전에 테이블을 비운다 | |
--fields-enclosed-by | 이 옵션은 LOAD DATA INFILE의 해당 조항과 동일한 의미를 가지고 있습니다 | |
--fields-escaped-by | 이 옵션은 LOAD DATA INFILE의 해당 조항과 동일한 의미를 가지고 있습니다 | |
--fields-optionally-enclosed-by | 이 옵션은 LOAD DATA INFILE의 해당 조항과 동일한 의미를 가지고 있습니다 | |
--fields-terminated-by | -이 옵션은 LOAD DATA INFILE의 해당 조항과 동일한 의미를 가지고 있습니다 | |
--force | SQL 오류가 발생해도 계속 | |
--help | 도움말 메시지를 표시하고 종료 | |
--host | 지정된 호스트에서 MySQL 서버에 연결 | |
--ignore | --replace 옵션의 설명을 참조 | |
--ignore-lines | 데이터 파일의 첫 번째 N 라인을 무시 | |
--lines-terminated-by | 이 옵션은 LOAD DATA INFILE의 해당 조항과 동일한 의미를 가지고 있습니다 | |
--local | 클라이언트 호스트에서 입력 파일을 로컬로로드 | |
--lock-tables | 텍스트 파일을 처리하기 전에 모든 테이블을 쓰기 잠금 | |
--login-path | 로그인 경로 옵션을 .mylogin.cnf에서 읽기 | 5.6.6 |
--low-priority | 테이블로드시 LOW_PRIORITY를 사용합니다. | |
--no-defaults | 옵션 파일을 읽지 | |
--password | 서버에 연결할 때 사용하는 비밀번호 | |
--pipe | Windows에서 명명 된 파이프를 사용하여 서버에 연결 | |
--plugin-dir | 플러그인이 설치되어있는 디렉토리 | 5.6.2 |
--port | 연결에 사용하는 TCP / IP 포트 번호 | |
--print-defaults | 기본 출력 | |
--protocol | 사용하는 연결 프로토콜 | |
--replace | --replace와 --ignore 옵션은 고유 키 값에 대해 기존의 행과 중복 입력 행의 처리를 제어 | |
--secure-auth | 오래된 (4.1.1 이전) 형식으로 서버에 암호를 전송하지 | 5.6.17 |
--shared-memory-base-name | 공유 메모리 연결에 사용하는 공유 메모리의 이름 | |
--silent | 오류가 발생했을 때만 출력을 생성 | |
--socket | 로컬 호스트에 연결하는 데 사용하는 Unix 소켓 파일 | |
--ssl | 연결에 SSL을 활성화 | |
--ssl-ca | 신뢰할 수있는 SSL CA의 목록이 들어있는 파일의 경로 | |
--ssl-capath | 신뢰할 수있는 SSL CA의 PEM 형식의 인증서를 포함하는 디렉토리의 경로 | |
--ssl-cert | PEM 형식의 X509 인증서가 포함 된 파일의 경로 | |
--ssl-cipher | SSL 암호화에 사용되는 허용 된 암호 목록 | |
--ssl-crl | 인증서 해지 목록을 포함하는 파일의 경로 | 5.6.3 |
--ssl-crlpath | 인증서 해지 목록 파일을 포함하는 디렉토리 경로 | 5.6.3 |
--ssl-key | PEM 형식의 X509 키를 포함하는 파일의 경로 | |
--ssl-verify-server-cert | 서버에 연결할 때 서버 인증서의 일반 이름 값을 호스트 이름에 대해 검증 | |
--use-threads | 병렬 파일로드 스레드 수 | |
--user | 서버에 연결할 때 사용하는 MySQL 사용자 이름 | |
--verbose | 중복 모드 | |
--version | 버전 정보를 출력하고 종료 |
--help
,-?
도움말 메시지를 표시하고 종료합니다.
--bind-address=
ip_address
여러 네트워크 인터페이스가있는 시스템에서이 옵션을 사용하여 MySQL 서버에 연결하는 데 사용하는 인터페이스를 선택합니다.
이 옵션은 MySQL 5.6.1에서 지원되고 있습니다.
--character-sets-dir=
path
문자 세트가 설치되어있는 디렉토리. 섹션 10.5 "문자 세트 구성" 을 참조하십시오.
--columns=
,column_list
-c
column_list
이 옵션은 쉼표로 구분 된 컬럼 이름 목록을 값으로 취합니다. 컬럼 이름의 순서는 데이터 파일의 컬럼과 컬럼을 매핑 방법을 보여줍니다.
--compress
,-C
클라이언트와 서버가 압축을 지원하는 경우 그 사이에 송수신되는 정보를 압축합니다.
--debug[=
,debug_options
]-# [
debug_options
]디버그 로그를 기록합니다. 일반적인
debug_options
문자열은d:t:o,
입니다. 기본값은file_name
d:t:o
입니다.--debug-check
프로그램 종료시 디버그 정보를 출력합니다.
--debug-info
프로그램 종료시 디버그 정보와 메모리 및 CPU 사용량 통계를 출력합니다.
--default-character-set=
charset_name
charset_name
를 디폴트 문자 세트로 사용합니다. 섹션 10.5 "문자 세트 구성" 을 참조하십시오.--default-auth=
plugin
사용하는 클라이언트 인증 플러그인. 섹션 6.3.7 "플러그 인증" 을 참조하십시오.
이 옵션은 MySQL 5.6.2에서 추가되었습니다.
--defaults-extra-file=
file_name
이 옵션 파일은 글로벌 옵션 파일 다음에 읽을 수 있지만 (UNIX의 경우) 사용자 옵션 파일 전에 읽도록하십시오. 파일이 없거나 액세스 할 수없는 경우 오류가 발생합니다.
file_name
은 전체 경로 이름이 아닌 상대 경로 이름으로 지정된 경우 현재 디렉토리를 기준으로 해석됩니다.--defaults-file=
file_name
지정된 옵션 파일 만 사용합니다. 파일이 없거나 액세스 할 수없는 경우 오류가 발생합니다.
file_name
은 전체 경로 이름이 아닌 상대 경로 이름으로 지정된 경우 현재 디렉토리를 기준으로 해석됩니다.--defaults-group-suffix=
str
일반적인 옵션 그룹뿐만 아니라 일반 이름에
str
의 접미사가 붙은 그룹도 읽습니다. 예를 들어, mysqlimport는 보통[client]
그룹과[mysqlimport]
그룹을 읽습니다.--defaults-group-suffix=_other
옵션을 지정했을 경우, mysqlimport는[client_other]
그룹과[mysqlimport_other]
그룹도 읽습니다.--delete
,-D
텍스트 파일을 가져 오기 전에 테이블을 비 웁니다.
--fields-terminated-by=...
,--fields-enclosed-by=...
,--fields-optionally-enclosed-by=...
,--fields-escaped-by=...
이 옵션은
LOAD DATA INFILE
의 대응하는 어구와 같은 의미를 가지고 있습니다. 섹션 13.2.6 "LOAD DATA INFILE 구문" 을 참조하십시오.--force
,-f
오류를 무시합니다. 예를 들어, 텍스트 파일의 테이블이 존재하지 않는 경우 남아있는 파일의 처리를 계속합니다.
--force
가 없으면 테이블이 존재하지 않으면 mysqlimport은 종료됩니다.--host=
,host_name
-h
host_name
지정된 호스트의 MySQL 서버에 데이터를 가져옵니다. 기본 호스트는
localhost
입니다.--ignore
,-i
--replace
옵션의 설명을 참조하십시오.--ignore-lines=
N
데이터 파일의 첫 번째
N
라인을 무시합니다.--lines-terminated-by=...
이 옵션은
LOAD DATA INFILE
의 해당 조항과 동일한 의미를 가지고 있습니다. 예를 들어, 캐리지 리턴과 줄 바꿈 쌍으로 끝나는 줄이있는 Windows 파일을 가져올 때--lines-terminated-by="\r\n "
을 사용하십시오. (명령 인터프리터 이스케이프 규칙에 따라 백 슬래시를 2 개 사용해야하는 경우가 있습니다.) 섹션 13.2.6 "LOAD DATA INFILE 구문" 을 참조하십시오.--local
,-L
클라이언트 호스트에서 입력 파일을 로컬로 읽습니다.
--lock-tables
,-l
텍스트 파일을 처리하기 전에 모든 테이블을 쓰기 위해 잠급니다. 이렇게하면 모든 테이블이 서버에서 동기화하는 것이 보증됩니다.
--login-path=
name
지명 된 로그인 경로에서
.mylogin.cnf
로그인 파일의 옵션을 읽습니다. "로그인 경로"는host
,user
및password
라는 제한된 옵션 집합 만 허용 옵션 그룹입니다. 로그인 경로는 서버 호스트 및 서버에서 인증을위한 인증 정보를 나타내는 값의 집합이라고 생각합니다. 로그인 경로 파일을 작성하려면 mysql_config_editor 유틸리티를 사용합니다. 섹션 4.6.6 "mysql_config_editor - MySQL 구성 유틸리티" 를 참조하십시오. 이 옵션은 MySQL 5.6.6에서 추가되었습니다.--low-priority
테이블을로드 할 때
LOW_PRIORITY
를 사용합니다. 이것은 테이블 수준 잠금만을 사용하는 스토리지 엔진 (MyISAM
,MEMORY
및MERGE
)에만 영향을 미칩니다.--no-defaults
옵션 파일을 읽지 않습니다. 옵션 파일에서 알 수없는 옵션을 읽을로 인해 프로그램의 실행에 실패 할 경우
--no-defaults
를 사용하여 옵션을 읽는 것을 방지 할 수 있습니다.예외적으로
.mylogin.cnf
파일은 존재하는 경우는 모든 경우에 읽습니다. 이는--no-defaults
가 사용 된 경우에도 명령 행보다 안전한 방법으로 암호를 지정할 수 있습니다. (.mylogin.cnf
는 mysql_config_editor 유틸리티가 작성됩니다. 섹션 4.6.6 "mysql_config_editor - MySQL 구성 유틸리티" 를 참조하십시오).--password[=
,password
]-p[
password
]서버에 연결할 때 사용하는 암호입니다. 짧은 옵션 형식 (
-p
)을 사용하는 경우, 옵션과 패스워드 사이에 스페이스를 가질 수 없습니다. 명령 행에서--password
옵션 또는-p
옵션 뒤에password
의 값을 지정하지 않으면, mysqlimport는 그것을 요구합니다.명령 행에서 암호 지정은 안전하지 않다고 생각한다. 섹션 6.1.2.1 "비밀번호 보안에 대한 최종 사용자 지침" 을 참조하십시오. 옵션 파일을 사용하면 명령 행에서 암호를 지정하는 것을 방지 할 수 있습니다.
--pipe
,-W
Windows에서 명명 된 파이프를 사용하여 서버에 연결합니다. 이 옵션은 서버가 명명 된 파이프 연결을 지원하는 경우에만 적용됩니다.
--plugin-dir=
path
플러그인을 검색하는 디렉토리.
--default-auth
옵션을 사용하여 인증 플러그인을 지정했지만, mysqlimport이 그것을 찾을 수없는 경우이 옵션을 지정해야 할 수도 있습니다. 섹션 6.3.7 "플러그 인증" 을 참조하십시오.이 옵션은 MySQL 5.6.2에서 추가되었습니다.
--port=
,port_num
-P
port_num
연결에 사용하는 TCP / IP 포트 번호.
--print-defaults
프로그램 이름과 옵션 파일에서받는 모든 옵션을 출력합니다.
--protocol={TCP|SOCKET|PIPE|MEMORY}
서버에 연결하는 데 사용하는 연결 프로토콜. 이 옵션은 다른 연결 매개 변수는 필요한 프로토콜 이외의 것이 일반적으로 사용되는 경우에 유용합니다. 허용되는 값의 자세한 내용은 섹션 4.2.2 "MySQL 서버에 연결" 을 참조하십시오.
--replace
,-r
--replace
옵션 및--ignore
옵션은 기존 행의 고유 키 값을 중복시키는 입력 행의 처리를 제어합니다.--replace
를 지정하면 동일한 고유 키 값을 가진 기존 행은 새로운 라인으로 대체됩니다.--ignore
를 지정하면 기존 행의 고유 키 값을 중복하는 입력 행은 생략됩니다. 두 옵션 모두 지정하지 않은 경우 중복 키 값이 발견되면 오류가 발생하고 나머지 텍스트 파일은 무시됩니다.--secure-auth
이전 (4.1 이전) 형식으로 서버에 암호를 전송하지 않습니다. 그러면 새 암호 형식을 사용하는 서버 이외의 연결을 방지합니다. 이 옵션은 기본적으로 활성화됩니다. 해제하려면
--skip-secure-auth
를 사용합니다. 이 옵션은 MySQL 5.6.17에서 추가되었다.참고4.1 이전의 해시 방식을 사용하는 암호는 기본 암호 해시 방식을 사용하는 암호보다 안전하지 않기 때문에 사용하지 않도록하십시오. 4.1 이전 암호는 사용되지 않으며, 이러한 지원은 향후 MySQL 릴리스에서 제거 될 예정입니다. 계정 업그레이드 지침은 섹션 6.3.8.3 "4.1 이전 암호 해시 방식과 mysql_old_password 플러그인에서 마이그레이션" 을 참조하십시오.
--shared-memory-base-name=
name
Windows에서 공유 메모리를 사용하여 생성되는 로컬 서버에 연결 공유 메모리 이름. 기본값은
MYSQL
입니다. 공유 메모리 이름은 대소 문자를 구분합니다.공유 메모리 연결을 가능하게하려면 서버는
--shared-memory
옵션으로 시작해야합니다.--silent
,-s
자동 모드. 오류가 발생했을 때만 출력을 생성합니다.
--socket=
,path
-S
path
localhost
에 연결하는 데 사용되는 Unix 소켓 파일 또는 Windows에서 사용하는 명명 된 파이프의 이름.--ssl*
--ssl
로 시작하는 옵션은 SSL을 사용하여 서버에 연결하는 것을 허용할지 여부를 지정하고 SSL 키와 인증서를 검색 할 위치를 지정합니다. 섹션 6.3.10.4 "SSL 명령 옵션" 을 참조하십시오.--user=
,user_name
-u
user_name
서버에 연결할 때 사용하는 MySQL 사용자 이름.
--use-threads=
N
N
개의 스레드를 사용하여 여러 파일을 동시에로드합니다.--verbose
,-v
중복 모드. 프로그램의 동작에 대해 더 많은 정보를 출력합니다.
--version
,-V
버전 정보를 출력하고 종료합니다.
mysqlimport의 사용 방법을 나타내는 샘플 세션을 보여줍니다.
shell>mysql -e 'CREATE TABLE imptest(id INT, n VARCHAR(30))' test
shell>ed
a 100 Max Sydow 101 Count Dracula . w imptest.txt 32 q 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 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 | +------+---------------+