2010-05-11 6 views
4

mySQL로 가져 오려는 일부 CSV 데이터 파일이 있습니다. 쉘 스크립트에서 삽입 작업을 수행하여 자동화 할 수 있습니다. 그러나, 나는 스크립트에 일반 텍스트 사용자 이름과 암호를 가진 약간 지친입니다CSV 데이터 파일의 MySQL 대량 삽입

나는 다음과 같은 질문이 :

  1. 내가 일반 텍스트에서 UNAME/비밀번호의 아이디어와 불편 해요 대본에 (어쨌든이 주위에 있습니까, 아니면 내가 너무 편집증)?. 어쩌면 내가 삽입 된 테이블에 대한 INSERT 권한 만 가진 사용자를 설정할 수 있습니까?

  2. 데이터베이스 테이블 (원시 데이터를 가져 오는)에는 테이블 열을 기반으로 한 고유 키가 있습니다. 가져 오기를 시도하는 데이터에 중복이있을 수도 있습니다. (전체 삽입이 실패 IE) 대신의 MySQL 토하고보다, 내가 대신 이든에 MySQL을 말할 수 있도록하려는 것

(a)는 새로운 데이터 행을 UPDATE 또는 (B) 중복 행을 무시하십시오.

내가 선택한 설정은 전체 가져 오기의 것이고 행 단위는 아닙니다. 거기에 어떤 깃발 등 내가 그것을 위해 (a) 또는 (b) 위의 행동을 위해 mysql에 전달할 수 있습니다.

  1. 누구도 그런 쓰기 방법에 대한 출발점을 제안 할 수 있습니까? (bourne) 쉘 스크립트?

답변

7

mysqlimport은 MySQL과 함께 제공되는 명령 줄 도구입니다. 이 도구는 CSV 데이터를 대량로드하는 가장 빠른 방법입니다.

이 도구에는 중복 키 충돌을 처리하기 위해 두 개의 options, --replace--ignore이 있습니다.

보안과 관련하여 스크립트에 일반 텍스트로 암호를 넣지 않으려면 MYSQL_PWD 환경 변수 또는 .my.cnf 파일을 사용할 수도 있습니다 (파일의 모드가 400 또는 600인지 확인하십시오). End-User Guidelines for Password Security을 참조하십시오.

+1

감사합니다. BTW, 당신은 괴짜로 여기에 가면 프린스 에드워드 (웨일스 얼 백작)가 아니겠습니까?) – morpheous

+2

LOL! 치구가! 제로 그래, 나는 왕의 의무의 나의 가득한 계획에 돌아 간다고 생각한다. –