phpmyadmin에서 대용량 SQL 파일을 가져 오는 방법


81

약 12MB의 SQL 파일을 가져오고 싶습니다. 그러나로드하는 동안 문제가 발생합니다. SQL 파일을 분할하지 않고 업로드하는 방법이 있습니까?


1
mysql workbench또는 같은 mysql 도구 사용mysql Yog
diEcho

여기에서도 볼 수 있습니다. stackoverflow.com/questions/9593128/… Dunn.
Dung

당신은 MySQL의 콘솔을 사용할 수없는 경우, phpMyAdmin이 문서에서 유래 흥미로운 해결책이 : ozerov.de/bigdump
파올로 Gibellini

답변:


97

OS의 취향에 따라 mysql 콘솔에서 가져 오십시오.

mysql -u {DB-USER-NAME} -p {DB-NAME} < {db.file.sql path}

또는 원격 서버에있는 경우 -h 플래그를 사용하여 호스트를 지정합니다.

mysql -u {DB-USER-NAME} -h {MySQL-SERVER-HOST-NAME} -p {DB-NAME} < {db.file.sql path}

1
좋아, 되돌려 주셔서 감사합니다. php.ini를 변경하고 파일을 압축합니다. 그것은 :) 나를 위해 작동
Jasmeet 카 우르 차우에게

3
이것을하는 가장 빠른 방법!
Aris 2013

1
이것은 훌륭한 대답입니다. 익숙하지 않은 사람은 DB 파일을 호스트의 파일 관리자에 업로드 한 다음 호스트에서 SSH를 사용하여 로컬에서 작동 할 수 있습니다. 이것은 mysql단 한 번의 마이그레이션을 위해 서버에 설치 하는 것보다 훨씬 쉽습니다 . 도와 주셔서 감사합니다! (또한 대괄호가 필요하지 않았습니다)
DomainsFeatured

1
궁금한 사람들을 위해 MySQL / bin 폴더로 이동하여 명령을 실행해야합니다. 훌륭하게 일했습니다. 감사.
Etienne Dupuis

1
암호가 없다는 것은 어떻습니까? 기본 사용자 이름이 root 인 데이터베이스를 사용하고 있습니까? 이 명령을 사용하면 암호를 묻습니다.
Hkachhia

68

해야 할 3 가지 :

php.ini당신의 PHP 설치 (참고 : 조작 할 수있는 권리 php.ini 파일을 찾아, 당신은 CLI, 아파치, 또는 nginx를 위해 그것을 원하는 경우에 따라)

post_max_size=500M

upload_max_filesize=500M

memory_limit=900M

또는 다른 값을 설정합니다.

apache가 설치되어있는 경우 apache를 다시 시작 / 다시로드 하고 nginx를 사용하는 경우 nginx의 경우 php-fpm을 다시로드 합니다.

원격 서버?

max_execution_time파일을 업로드하는 데 시간이 걸리므로 증가 합니다.

NGINX 설치?

: 당신은 추가해야합니다 client_max_body_size 912M;/etc/nginx/nginx.conf받는 http{...}블록


3
정답-답변. 그 3 개 라인은해야했다

이것은 아파치 디렉토리,하지 (내 우분투 상자에서 테스트 적어도 같은) CLI 디렉토리에 추가해야합니다
Bad_Neighbor

이 변경 /etc/php/7.1/apache2/php.ini은 작동하지 않았습니다
W.Doch

@RickSanchez 아파치 에서이 PHP 버전을 실행하고 있습니까? 실행 phpinfo()하고 값이 올바르게 설정되었는지 확인하고 서버가 다시 시작되었는지 확인 하십시오
Toskan

1
그나마 PHP는 INI 다시 시작 아파치에서 max_execution_time이라는 값 인상하는 것을 잊지
hamboy75을

62

phpmyadmin 디렉토리에있는 config.inc.php 파일을 편집하십시오. 제 경우에는에 있습니다 C:\wamp\apps\phpmyadmin3.2.0.1\config.inc.php.

$cfg['UploadDir']그것과 함께 줄을 찾아서 업데이트하십시오.$cfg['UploadDir'] = 'upload';

그런 다음 phpmyadmin 디렉토리 (저는) 내에 'upload'라는 디렉토리를 만듭니다 C:\wamp\apps\phpmyadmin3.2.0.1\upload\.

그런 다음 가져 오려는 큰 SQL 파일을 새 upload디렉토리로 배치하십시오. 이제 phpmyadmin 콘솔의 db 가져 오기 페이지로 이동하면 이전에는 없었던 드롭 다운이 표시됩니다. 여기에는 방금 생성 한 업로드 디렉토리의 모든 sql 파일이 포함되어 있습니다. 이제 이것을 선택하고 가져 오기를 시작할 수 있습니다.

Windows에서 WAMP를 사용하지 않는 경우 큰 문제없이이를 사용자 환경에 적용 할 수 있습니다.

참조 : http://daipratt.co.uk/importing-large-files-into-mysql-with-phpmyadmin/comment-page-4/


5
최신 버전의 phpMyAdmin에서는 $ cfg [ 'UploadDir'] var가 전혀 없습니다. 그러나이 솔루션은 파일의 새 줄에 var를 추가하는 것만으로도 작동합니다.

var는 config.default.php같은 디렉토리의에서 phpmyadmin 버전 4.6.4를 사용하고 있습니다
KAD

1
더 이상 이전 댓글을 수정할 수 없습니다. 디렉토리는libraries/config.default.php
KAD

실패 결과와 함께 MySQL 명령 줄을 시도하는 데 이틀을 보낸 후 멋진 솔루션.
youhana

22

LINUX 사용자를위한 솔루션 (sudo로 실행)

'업로드'및 '저장'디렉토리를 만듭니다.

mkdir /etc/phpmyadmin/upload
mkdir /etc/phpmyadmin/save
chmod a+w /etc/phpmyadmin/upload
chmod a+w /etc/phpmyadmin/save

그런 다음 phpmyadmin의 구성 파일을 편집하십시오.

gedit /etc/phpmyadmin/config.inc.php

마지막으로 'upload'및 'save'디렉토리에 대한 절대 경로를 추가합니다.

$cfg['UploadDir'] = '/etc/phpmyadmin/upload';
$cfg['SaveDir'] = '/etc/phpmyadmin/save';

이제 /etc/phpmyadmin/upload폴더에 파일을 놓기 만하면 phpmyadmin에서 파일 을 선택할 수 있습니다.

여기에 이미지 설명 입력

이 도움을 바랍니다.


이 방법 File could not be read!을 사용하면 업로드 양식에서 제출 버튼을 클릭하면 phpmyadmin이 메시지를 표시합니다. 지금이 문제를 해결하는 중입니다.

@JoeRocc 문제에 대한 해결책을 찾았습니까? 아마도 권한 또는 소유권 문제 일 수 있습니다. 함께 시도sudo chmod 777 your-filename.sql
Guille Acosta

2
775. Not 777. 라이브 서버에서 작업을 수행하기 위해 777을 설정하도록 권장해서는 안됩니다. 보안 문제가 있습니다.
Koushik Das

15

한 줄이면 완료됩니다 (mysql 명령이 전역으로 사용 가능한지 확인하거나 mysql 설치 폴더로 이동하여 bin 폴더에 입력하십시오)

mysql -u database_user_name -p -D database_name < complete_file_path_with_file_name_and_extension 

여기

  • u 사용자를 의미
  • p 암호를 의미합니다.
  • D Database를 의미합니다.

--- <데이터베이스 이름 뒤에 서명을 추가하는 것을 잊지 마십시오 ---

이름과 확장자가있는 완전한 파일 경로는 다음과 같을 수 있습니다.

c:\folder_name\"folder name"\sql_file.sql

--- 폴더 및 파일 이름에 이중 따옴표를 사용하여 바인딩 된 공간보다 많은 공간이 포함 된 경우 ---

팁 및 참고 : 암호는 나중에 쓸 수 -p있지만 그 시간에 화면을보고있는 다른 사람에게 표시되므로 권장하지 않습니다. 입력하지 않으면 Enter 키를 눌러 명령을 실행할 때 묻는 메시지가 표시됩니다.



7

.sql파일에 다음 구성을 사용하여 큰 파일 을 가져올 수있었습니다 httpd.conf.

Alias /phpmyadmin "C:/xampp/phpMyAdmin/"
<Directory "C:/xampp/phpMyAdmin">
    AllowOverride AuthConfig
    Require all granted

    php_admin_value upload_max_filesize 128M
    php_admin_value post_max_size 128M
    php_admin_value max_execution_time 360
    php_admin_value max_input_time 360
</Directory>

4

php.ini 파일을 편집해야합니다. upload_max_filesize post_max_size파일 크기에 맞게 다음 을 변경하십시오 .

phpinfo()현재 값을 확인하기 위해 실행 중 입니다. php.ini 파일을 직접 변경할 자유가 없다면 ini_set ()을 시도하십시오.

그것도 옵션이 아니라면 bigdump 를 시도해 볼 수 있습니다.




2

나는 기사를 우연히 발견했고 이것은 나를 위해 가장 잘 작동했습니다.

  1. 선호하는 코드 편집기를 사용하여 phpmyadmin 디렉토리에서 config.inc.php 파일을 엽니 다. 로컬 MAMP 환경에서는 다음 위치에 있어야합니다.

하드 드라이브»애플리케이션»MAMP»bin»config.inc.php

  1. 구를 검색하십시오 $cfg[‘UploadDir’]– 다음과 같이 보일 것입니다 :

$cfg['UploadDir'] = '';

  1. 다음과 같이 변경하십시오.

$cfg['UploadDir'] = 'upload';

  1. 그런 다음 해당 phpmyadmin 디렉토리 내에서 새 폴더를 만들고 이름을 업로드합니다.

  2. 가져 오려는 큰 .sql 파일을 가져 와서 새 업로드 폴더에 넣습니다.

  3. 이제 다음 번에 phpMyAdmin으로 데이터베이스를 가져 오면 "가져올 파일"섹션의 표준 찾아보기 영역 바로 아래에 새 드롭 다운 필드가 표시됩니다.


2

좋아 PHPMyAdmin을 사용하지만 때로는 가장 좋은 방법은 터미널을 사용하는 것입니다.

  • 데이터베이스에 연결 : mysql -h localhost -u root -p(사용자 및 데이터베이스 위치에 대한 루트 및 로컬 호스트 전환)
  • 덤프에서 가져 오기 시작 : \. /path/to/your/file.sql
  • 터미널을 사용하기 때문에 커피를 마시고 자신에 대해 자랑하십시오.

그리고 그게 다야. 원격 서버에있는 경우 .sql 파일을 일부 폴더에 업로드해야합니다.


2

공유 호스팅을 사용하는 사람들을위한 대답입니다. 300MB DB 파일을 서버로 가져 오는 데 사용한이 작은 스크립트를 사용하는 것이 가장 좋습니다. 스크립트는 Big Dump라고합니다.

리소스가 제한된 서버에서 대용량 DB를 가져 오는 스크립트 제공


이것은 실제로 좋은 해결책이지만 언젠가는 유효하지 않을 수있는 URL 때문에 반대 투표를 받았습니다. 이 스크립트에 대한 정보, 특히 그 이름을 추가하십시오.
대신

큰 덤프라고 불리는 것은 큰 데이터베이스 파일을 서버로 가져올 때 SQL 서버가 중지되거나 중단되는 것을 중지합니다. BTW 아래 어느 순간 그들 중 누구도에서 투표를 다운 수 URL을 다른 답이있다
c0d3x1337

2

MAMP에서는 다음과 같이 대용량 파일을로드 할 수 있습니다.

  1. 이 디렉토리 / MAMP / bin / phpMyAdmin / "folderName"에 새 폴더 생성

  2. 그런 다음 "/MAMP/bin/phpMyAdmin/config.inc.php"줄 531을 편집합니다.

       $cfg['UploadDir']= 'folderName';   
    
  3. .sql 또는 .csv 파일을이 폴더에 복사하십시오.

  4. 이제 "PhpMyAdmin"에 다른 옵션이 있습니다. 웹 서버 업로드 디렉토리에서 선택 newFolder / : 파일을 선택하고 가져올 수 있습니다.

    이제 모든 파일을로드 할 수 있습니다!


1

큰 파일을 업로드하는 가장 좋은 방법은 phpmyadmin을 사용하지 않습니다. phpmyadin은 처음에 php 업로드 클래스를 사용하여 파일을 업로드 한 다음 대부분의 시간 초과가 발생하는 sql을 실행합니다.

가장 좋은 방법은 wamp folder> bin> mysql> bin dirrectory를 입력 한 다음이 줄을 작성하는 것입니다.

mysql -u root -p listnames <latestdb.sql here listnames는 처음에는 빈 데이터베이스를 생성하고 latestdb.sql은 데이터가있는 SQL 파일 이름입니다.

그러나 중요한 것은 데이터베이스 파일에 유니 코드 데이터가있는 경우입니다. latestdb.sql 파일을 열고 한 줄 앞의 줄을 열어야합니다. 라인은 다음과 같습니다.

이름 설정 utf8; 그런 다음 명령 모드 에서이 스크립트 코드를 실행하십시오.


1
  1. 메모장과 같은 텍스트 편집기에서 SQL 파일을 엽니 다.
  2. 모두 선택-> 복사
  3. phpMyAdmin으로 이동하여 데이터베이스를 선택하고 SQL 탭으로 이동하십시오.
  4. 복사 한 콘텐츠를 클립 보드에 붙여 넣습니다.
  5. 자바 스크립트 오류가 나타날 수 있습니다. 무시하세요.
  6. 실행

좋은 습관이 아닙니다! 큰 텍스트는 이렇게 할 때 큰 문제를 일으킬 것입니다. 가장 좋은 방법은 mysql을 통해 큰 가져 오기 또는 가져 오기를 허용하도록 php.ini를 구성하는 것입니다.
Marcelo Agimóvel

0

12MB보다 큰 파일 업로드를 허용하도록 서버 설정을 변경하면 괜찮습니다. 일반적으로 서버 설정은 파일 업로드를 위해 5 ~ 8mb로 설정됩니다.


1
이것은 질문에 대한 답을 제공하지 않습니다. 작성자에게 비판이나 설명을 요청하려면 게시물 아래에 댓글을 남겨주세요. - 검토에서
세바스찬 Brosch

1
실제로이 답변이 게시되었을 때 파일 업로드가 기본적으로 충분히 크지 않다는 가장 일반적인 오류 (3 년 전)였습니다. 그는 phpmyadmin == webinterface를 사용하고 있습니다. 가져 오기 == 디스크에서 업로드. 업로드 == 서버 설정. 서버 설정 == 기본값은 3 년 전 5 또는 8MB입니다. 그래서 나는 이것이 어떻게 대답을 제공하지 않는지 보지 못합니다. 예, 그가 사용하는 서버, apache, ngix, iis 등을 제공하지 않았기 때문에 정확히 설정하는 방법을 직접 안내하지 않았습니다.
Tschallacka

0

한 가지 해결책은 명령 줄을 사용하는 것입니다.

mysql -h yourhostname -u username -p databasename < yoursqlfile.sql

SQL에 대한 경로 만 확인하십시오.가져올 파일 가 명시 적으로 지정되어 .

제 경우에는 이것을 사용했습니다.

mysql -h localhost -u root -p databasename < /home/ejalee/dumps/mysqlfile.sql

짜잔! 당신은 갈 수 있습니다.


0

phpmyadmin에 의해 생성 된 대용량 데이터베이스 덤프를 가져 오도록 설계된 PHP 스크립트를 만들었습니다. PETMI라고하며 여기 [프로젝트 페이지] [gitlab 페이지] 에서 다운로드 할 수 있습니다 . 1GB 데이터베이스로 테스트되었습니다.


0

PHPmyadmin은 또한 gzip 형식의 압축 파일을 허용하므로 파일을 gzip ( 없는 경우 7Zip 사용 )하고 압축 된 파일을 업로드 할 수 있습니다. 텍스트 파일이기 때문에 압축률이 좋습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.