- Database 전체를 import하는 방법은 다음과 같습니다.
database 전체를 import할 경우 반드시 해당 database가 생성되어 있어야 합니다.
mysql -uuser_id -ppassword dbname < sql_file
ex) Windows : C:\mysql\bin> mysql -utest -ptest testdb < test.sql
Linux : # mysql -utest -ptest testdb < test.sql
=> MySQL에 생성되어 있는 "testdb"라는 database에 test.sql file에 정의된 형식으
로 table 및 data를 import하라는 명령입니다.
- 특정 table정보를 import하는 방법은 다음과 같습니다.
table 정보를 import할 경우 해당 database에는 동일한 table name이 없어야 합니다.
mysql -uuser_id -ppassword dbname < sql_file
ex) Windows : C:\mysql\bin> mysql -utest -ptest testdb < test.sql
Linux : # mysql -utest -ptest testdb < test.sql
=> MySQL에 생성되어 있는 "testdb"라는 database에 test.sql file에 정의된 table을
생성하고, 포함된 data를 import하라는 명령입니다.
- 전체 database를 import 하는 방법과 특정 table만을 import하는 명령이 동일하므로 혼란
을 가져올 수가 있으나, 구별하는 방법은 오로지 dump 받은 file에 달려 있으므로 관리자
는 해당 file 정보에 대해 숙지하고 있어야 합니다.
Text로 저장된 data를 import하는 방법
- Text file의 내용을 database에 import할 경우 mysqlimport라는 utility를 사용합니다. 예
를 들어서 엑셀에서 작업한 10,000개의 데이터를 mysql에 저장시키려면, 엑셀에서 저장
할 때 각각 쉘 구분을 ";"나 "|" 으로 하고 텍스트 형식으로 저장합니다.
- MySQL에 저장시키기 위해서는 미리 저장하기 위한 테이블이 생성되어 있어야 합니다. 그
리고 사용자 권한에 파일데이터를 데이터베이스에 입력할 수 있는 권한이 있어야 합니다.
그러나 일반 사용자에게는 보통 파일데이터를 직접 입력할 수 있는 권한을 주지 않으므로
루트 권한으로 하는 것이 좋습니다. 부득이할 경우 사용자에게 파일데이터를 직접 입력할
수 있는 권한을 주면 됩니다. mysql데이터베이스에서 user 테이블의 사용자에게 "File_
priv" 권한을 "Y" 로 주면 됩니다.
- 사용방법은 다음과 같습니다.
mysqlimport -uuser_id -ppassword --fields-terminated-by=구분자
dbname table_name text_file
ex) Windows : C:\mysql\bin> mysqlimport -utest -ptest --fields-terminated-by=;
testdb test test.txt
Linux : # mysqlimport -utest -ptest --fields-terminated-by=; testdb test
test.txt
=> testdb 데이터베이스의 test라는 테이블에 test.txt 의 내용을 입력합니다. 각 필드
의 구분은 ";"로 한다는 명령입니다.