MySQL로 대용량 SQL 파일 가져오기
400MB의 대용량 SQL 백업 파일이 있습니다.WAMP → 가져오기를 사용하여 해당 파일을 MySQL 데이터베이스로 가져오려고 하는데 업로드 파일 크기가 너무 큰 등 여러 가지 이유로 가져오기에 실패했습니다.WAMP에서 PHP 및 MySQL 설정을 몇 가지 변경했습니다.변경사항은 다음과 같습니다.
Under WAMP->MySQL->my.ini
max_allowed_packet = 800M
read_buffer_size = 2014K
Under WAMP->PHP->PHP.ini
max_input_time = 20000
memory_limit = 128M
WAMP → 가져오기를 사용하여 이렇게 큰 SQL 파일을 가져오는 것이 올바른 방법입니까?
그렇다면 컨피규레이션파일을 올바르게 변경했습니까?위의 변수에서 허용되는 최대값은 얼마입니까?
다음 명령줄 방법으로 대용량 파일을 가져올 수 있습니다.
mysql -h yourhostname -u username -p databasename < yoursqlfile.sql
MySQL Workbench를 사용하고 있음을 (다른 사용자의 답변에 대한 설명 설명에서) 설명하므로 "sql script" 옵션을 사용해 볼 수 있습니다.이렇게 하면 명령줄을 사용할 필요가 없어집니다(단, 말에 올라타서 말을 배우는 것이 좋다는 다른 대답에 동의합니다).
MySQL Workbench에서 파일 메뉴로 이동한 다음 "스크립트 열기"를 선택합니다.이 작업은 시간이 오래 걸리고 앱이 당신이 설명하는 것처럼 큰 것을 열 수 있도록 만들어지지 않았기 때문에 크래시 될 수도 있습니다.
명령줄을 사용하는 것이 좋습니다.컴퓨터에 MySQL 클라이언트가 설치되어 있는지 확인합니다.이는 실제 MySQL(Workbench GUI, PhpMyAdmin 등이 아님)을 의미합니다.명령줄 도구를 설명하는 링크입니다.이 파일을 다운로드하여 설치한 후 컴퓨터에서 터미널 창을 열면 파일 시스템(백업 파일 등)에서 타깃 데이터베이스로 데이터를 슬러핑할 수 있는 두 가지 옵션이 있습니다.하나는 'source' 명령어를 사용하는 것이고 다른 하나는 <redirection 연산자를 사용하는 것입니다.
옵션 1: 백업 파일이 있는 디렉토리에서:
$mysql -u username -p -h hostname databasename < backupfile.sql
옵션 2: 백업 파일이 있는 디렉토리에서:
$mysql -u username -p -h hostname
[enter your password]
> use databasename;
> source backupfile.sql
두 가지 옵션을 모두 사용하려면 SQL 백업 파일이 있어야 합니다.
mysql 명령어창에서 다음 명령을 사용합니다.
mysql> use db_name;
mysql> source backup-file.sql;
다음 명령을 사용하여 임의의 SQL 쿼리 브라우저에서 import 명령을 만들 수 있습니다.
source C:\path\to\file\dump.sql
쿼리 창에서 위의 코드를 실행하고 잠시 기다립니다. : )
이는 앞서 설명한 명령줄 버전과 거의 동일합니다.주요 차이점은 MySQL 내에서 대신 실행된다는 것입니다.비표준 인코딩을 사용하는 사용자의 경우 인코딩 실패 위험이 적기 때문에 명령줄 버전을 사용하는 것보다도 이 방법이 안전합니다.
SQL Server를 사내로 이동할 때도 같은 문제가 발생하였습니다.
결국 SQL 파일을 청크로 분할하는 것이 좋은 해결책입니다.그것을 하는 방법에는 여러 가지가 있다.사용하다
http://www.ozerov.de/bigdump/은 좋은 것 같습니다(단, 사용한 적은 없습니다).
http://www.rusiczki.net/2007/01/24/sql-dump-file-splitter/은 그것을 사용했고, 구조물을 혼란에서 벗어나게 하는데 매우 유용했고, 당신은 거기서부터 그것을 얻을 수 있다.
이것이 도움이 되기를 바랍니다:)
이 질문은 몇 달 전이지만, 다른 사람들은 --
큰 파일을 Import 하는 보다 간단한 방법은 서브 디렉토리를 c:/wamp/apps/phpmyadmin 3.5.2 폴더에 '업로드'하고 동일한 디렉토리에 있는 config.inc.php 파일에서 이 행을 편집하여 폴더 이름 $cfg['를 포함하는 것입니다.UploadDir'] = '업로드';
그런 다음 수신된 .sql 파일을 /upload 폴더에 넣습니다.
phpmyadmin 콘솔 내에서 작업하고 새 데이터베이스로 이동하여 가져옵니다.이제 해당 폴더에서 파일을 업로드하는 추가 옵션이 표시됩니다.올바른 파일을 선택하고 조금만 참아주세요.그건 효과가 있다.
그래도 타임아웃 오류가 뜨면 $cfg[''를 추가해 보세요.ExecTimeLimit'] = 0, 동일한 config.inc.dism 파일로 이동합니다.
사용자 이름이 root이고 비밀번호가 새 서버의 root 비밀번호와 다른 .sql 파일을 Import하는 데 어려움이 있었습니다..sql 파일을 내보내기 전에 패스워드를 삭제하기만 하면 Import가 원활하게 진행되었습니다.
로컬에서 수행하는 경우 다음 세 가지 작업을 수행해야 합니다.
»php.ini
★★★★★★★★★★★★★★★★★」php.cfg
PHP 치 php php
post_max_size=500M
upload_max_filesize=500M
memory_limit=900M
또는 다른 값을 설정합니다.Apache 를 재기동합니다.
또는
PHP 빅 덤프 도구를 사용합니다.내가 본 것 중에 최고야.무료 오픈 소스입니다.
Windows에서도 같은 문제가 발생.Windows에서 큰 MySQL SQL 파일을 여는 방법을 알아보려고 했는데, 다음 단계를 수행해야 했습니다.
MySQL Community Server를 다운로드하여 설치합니다(개발자 또는 전체 설치를 선택하면 클라이언트 및 서버 도구가 설치됩니다).
시작 메뉴에서 MySQL 명령줄 클라이언트를 엽니다.
인스톨에 사용하는 패스워드를 입력합니다.
프롬프트 mysql>에서 다음과 같이 입력합니다.
CREATE DATABASE database_name; USE database_name; SOURCE myfile.sql
그러면 대용량 파일이 Import됩니다.
phpMyAdmin 항목 1.16에서는 다음과 같이 표시됩니다.
1.16 대용량 덤프 파일을 업로드할 수 없습니다(메모리, HTTP 또는 타임아웃 문제).
버전 2.7.0 이후 Import Engine은 다시 작성되었으며 이러한 문제는 발생하지 않습니다.가능하면 phpMyAdmin을 최신 버전으로 업그레이드하여 새로운 Import 기능을 활용하십시오.
먼저 확인해야 할(또는 호스트 프로바이더에게 확인을 의뢰해야 할) 것은upload_max_filesize
,memory_limit
그리고.post_max
_사이즈:php.ini
컨피규레이션파일이 세 가지 설정은 모두 PHP에서 제출 및 처리할 수 있는 데이터의 최대 크기를 제한합니다.한 유저도 말했다.post_max_size
그리고.memory_limit
upload_max_filesize보다 커야 합니다.업로드가 너무 크거나 호스팅 공급자가 설정을 변경할 의사가 없는 경우 다음과 같은 몇 가지 해결 방법이 있습니다.
를 봐주세요.$cfg['UploadDir']
특징.이것에 의해, scp, ftp, 또는 마음에 드는 파일 전송 방법을 사용해 서버에 파일을 업 로드할 수 있습니다.그러면 PhpMyAdmin은 임시 디렉토리에서 파일을 가져올 수 있습니다.상세한 것에 대하여는, 이 문서의 「설정」을 참조해 주세요.
업로드하기 전에 유틸리티(Big Dump 등)를 사용하여 파일을 분할합니다.이 어플리케이션이나 서드파티 어플리케이션은 지원할 수 없지만 사용자가 이 어플리케이션에서 성공할 수 있다는 것을 알고 있습니다.
셸(명령줄) 액세스 권한이 있는 경우 MySQL을 사용하여 파일을 직접 가져옵니다.MySQL 내에서 "source" 명령을 실행하여 이를 수행할 수 있습니다.
source filename.sql;
Windows에서 source 명령어를 사용하는 경우 다음 명령을 사용하는 것을 잊지 마십시오.f:/myfolder/mysubfolder/file.sql
가 아니라f:\myfolder\mysubfolder\file.sql
가장 쉬운 방법은 MYSQL 명령줄을 사용하여 파일을 업로드하는 것이라고 생각합니다.
터미널에서 명령을 사용하여 MySQL 명령줄에 액세스하고 소스를 실행합니다.
mysql --host=hostname -uuser -ppassword
source filename.sql
또는 터미널에서 직접
mysql --host=hostname -uuser -ppassword < filename.sql
프롬프트에 표시됩니다.
가장 간단한 솔루션은 MySQL Workbench입니다..sql 파일 텍스트를 MySQL Workbench의 쿼리 창에 복사하고 실행하기만 하면 됩니다.이름을 바꾸는 일은 모두 그것으로 끝납니다.
my.ini
max_allowed_packet = 800M
read_buffer_size = 2014K
PHP.ini
max_input_time = 20000
memory_limit = 128M
post_max_size=128M
언급URL : https://stackoverflow.com/questions/15278375/importing-larger-sql-files-into-mysql
'source' 카테고리의 다른 글
Windows: XAMPP vs WampServer vs EasyPHP vs 대체 (0) | 2022.09.15 |
---|---|
MySql TEXT 열을 인덱싱하시겠습니까? (0) | 2022.09.15 |
요소가 존재할 때까지 함수를 대기시킵니다. (0) | 2022.09.14 |
팬더에서 기둥 이름 바꾸기 (0) | 2022.09.14 |
WebView자원 요청에 커스텀헤더 추가 - Android (0) | 2022.09.14 |