명령줄에서 대용량 SQL 파일을 MySql로 가져오는 중
Ubuntu 명령줄을 통해 300MB 정도의 SQL 파일을 MySql로 Import하려고 합니다.나는 사용했다
source /var/www/myfile.sql;
현재는 무한해 보이는 다음 행이 표시됩니다.
Query OK, 1 row affected (0.03 sec)
하지만 지금은 조금 시간이 흘렀습니다.지금까지 이렇게 큰 파일을 Import한 적이 없기 때문에 정상인지, 프로세스가 정지하거나 오류가 발생하는지 알고 싶습니다.이 작업은 명령줄에 표시됩니까, 아니면 이 프로세스는 무기한으로 진행됩니까?
감사합니다.
다음과 같이 표준 입력을 사용하여 .sql 파일을 가져올 수 있습니다.
mysql -u <user> -p<password> <dbname> < file.sql
주의: 다음 항목 사이에 공백이 없어야 합니다.<-p>
그리고.<password>
참고 자료: http://dev.mysql.com/doc/refman/5.0/en/mysql-batch-commands.html
제안된 편집에 대한 참고 사항:이 답변은 인라인 패스워드 파라미터를 사용하기 위해 제안된 편집에 의해 약간 변경되었습니다.스크립트에 대해서는 권장할 수 있지만 파라미터에 직접 패스워드를 쓸 때는 주의해 주십시오.-p<password>
)은, 이력 파일을 읽을 수 있는 사람에게 패스워드를 표시하는 셸 이력에 의해서 캐시 되는 경우가 있습니다.반면에.-p
그럼 표준 입력으로 패스워드를 입력하도록 요구됩니다.
대용량 파일을 Import하는 데 걸리는 시간이 가장 중요한 것은 mysql의 기본 설정이 "commit = true"이기 때문에 파일을 Import하기 전에 설정을 해제하고 Import가 보석처럼 작동하는 방식을 확인해야 한다는 것입니다.
먼저 MySQL 열기:
mysql -u 루트 -p
그 후 다음 작업만 수행하면 됩니다.
mysql>use your_db
mysql>SET autocommit=0 ; source the_sql_file.sql ; COMMIT ;
+1 ~ @MartinNuc, 를 실행할 수 있습니다.mysql
클라이언트는 배치모드의 경우, 「OK」행의 긴 스트림을 볼 수 없습니다.
특정 SQL 파일을 가져오는 데 걸리는 시간은 여러 가지 사항에 따라 달라집니다.파일의 크기뿐만 아니라 파일 내의 문 유형, 서버 서버의 성능 및 동시에 실행되는 다른 작업 수도 포함됩니다.
@MartinNuc에서는 4GB의 SQL을 4~5분만에 로드할 수 있다고 합니다만, 저는 0.5GB의 SQL 파일을 실행하고, 소규모 서버에서는 45분이 걸렸습니다.
서버에서 SQL 스크립트를 실행하는 데 얼마나 걸릴지 예측할 수 없습니다.
코멘트 부탁드립니다.
@MartinNuc가 맞습니다.mysql 클라이언트에 모든 스테이트먼트를 인쇄하도록 선택할 수 있습니다.아니면 두 번째 세션을 열고mysql> SHOW PROCESSLIST
하는 데 이나 '더 수 있습니다.다만, 「완료율」의 수치나, 나머지 문장을 완성하는 데 걸리는 시간의 견적에 더 관심이 있을 것입니다.
죄송합니다. 이러한 기능은 없습니다.mysql 클라이언트는 이후 문을 실행하는 데 얼마나 걸릴지, 심지어 몇 개가 있는지 알 수 없습니다.따라서 완료하는 데 얼마나 걸릴지 의미 있는 예측을 할 수 없습니다.
대규모 SQL 복원에 사용하는 솔루션은 mysqldumpsplitter 스크립트입니다.sql.gz를 개별 테이블로 분할했습니다.그런 다음 mysql 워크벤치와 같은 것을 로드하고 원하는 스키마에 대한 복원으로서 처리합니다.
다음은 스크립트 https://github.com/kedarvj/mysqldumpsplitter 입니다.
이 방법은 대규모 SQL restore에 유효합니다.제가 작업하고 있는 사이트 중 평균은 2.5GB의 sql.gz 파일, 20GB의 비압축 파일, 100GB의 완전 restore입니다.
명령줄에서 대용량 SQL 파일을 MySql로 가져오는 중
- first download file.
- 파일을 집에 붙여넣습니다.
- 단말기에서 다음 명령어 사용(CMD)
- 구문: mysql - u username -p database sename < file .sql
예: mysql - u root - p aanew < aanew 。sql
언급URL : https://stackoverflow.com/questions/19483087/importing-large-sql-file-to-mysql-via-command-line
'programing' 카테고리의 다른 글
부울 필드 인덱싱 (0) | 2022.09.22 |
---|---|
Prop 값으로 데이터 속성을 초기화하는 방법 (0) | 2022.09.22 |
Eclipse - "호환성이 없는 JVM.JVM 버전 1.8.0_261은 이 제품에 적합하지 않습니다.버전: 11 이상 필요" (0) | 2022.09.22 |
Java 날짜 및 시간 클래스를 사용할까요, 아니면 Joda Time과 같은 서드파티 라이브러리를 사용할까요? (0) | 2022.09.22 |
Java 8: 람다의 반복 횟수를 세는 데 선호되는 방법? (0) | 2022.09.22 |