2011-03-18 2 views
2

필자는 MySQL 서버로 가져올 필요가있는 여러 50MB 이상의 csv 파일을 보유하고 있습니다. PhpMyAdmin을 사용하여 가져 오기를 시도했지만 Apache 서버가 손상되었습니다. MySQL Workbench와 같은 몇 가지 Windows 도구를 시도했지만 csv 가져 오기 옵션이 없습니다.서버를 손상시키지 않고 MySQL에 매우 큰 파일을 어떻게 업로드합니까?

나는 손실에 처해있다. 내가 무엇을 할 수 있을지?

+0

아래의 'LOAD DATA INFILE' 솔루션은 MySQL 서버에서 매우 쉽게 관리해야하므로 상자가 넘어지지 않습니다. – dianovich

+1

SQL에 직접 연결할 수 있다면 ID는 http://www.heidisql.com/ 또는 다른 SQL 클라이언트를 제안합니다. 그것은 CSV 가져 오기 기능을 가지고 있습니다. –

+0

php.ini conf var upload_max_filesize 한도에 도달 한 것 같습니다. 또한 데이터베이스에 쓰기 전에 서버의 로컬 디렉토리에 파일을 덤프하십시오. –

답변

1

파일은 CSV입니다. 맞습니까? MySQL 서버로 직접 가져 왔습니까? 난 당신이 시도한 다른 도구가이 작업을 수행하는 방법을 모르겠지만, MySQL은 텍스트 파일에서 가져 오기위한 명령이 있습니다 참조 설명서의

LOAD DATA INFILE 'data.txt' INTO TABLE tbl_name 
    FIELDS TERMINATED BY ',' ENCLOSED BY '"' 
    LINES TERMINATED BY '\r\n' 
    IGNORE 1 LINES; 

확인 this section합니다.

+0

잘 했어! 그러나 말하자면, CSV 파일의 배열을 위해 이것을 할 수있는 방법이 있습니까? 아니면 csv 파일의 폴더를 대상으로합니까? 그렇지 않다면 어떻게하면 MySQL이 다른 경로로 20-25 회 복사하여 붙여 넣은 응답으로 SQL 파일을 실행할 수 있습니까? – Hubro

0

서버에 파일을 FTP 또는 SSH하십시오.

그런 다음 LOAD DATA INFILE을 사용하여 데이터베이스에 파일을로드하십시오.

1

LOAD DATA INFILE 또는 mysqlimport 명령을 사용해야합니다. 그것들은 MySQL 용 일괄 업로드 도구이므로 문제없이 파일을 처리 할 수 ​​있어야합니다. 명령을 실행하기 전에 색인을 해제 한 다음 이후에 다시 실행하여 성능을 약간 향상시킬 수도 있습니다.

관련 문제