메모리 크기를 더 늘릴 수 없다고 가정하면 몇 가지 옵션이 있습니다.
명령 행에 익숙하지 않고 실제로 GUI 스타일 가져 오기를 사용하려면 BigDump ( http://www.ozerov.de/bigdump/ )를 사용할 수 있습니다 . 한 번 사용했지만 오래되었습니다. 내가 기억하는 것에서 bigdump.php 파일 (일부 지침 포함)을 다운로드하여 PHPMYADMIN을 통해 가져올 수없는 너무 큰 MySQL DB 덤프 파일이있는 디렉토리의 웹 서버에 저장합니다. 그런 다음 http://your-website.com/bigdump.php 와 같은 브라우저를 사용하여 탐색하십시오 .
명령 행에 익숙하고 Linux 기반 시스템을 사용하는 경우 다음과 같은 코드를 사용할 수 있습니다.
mysql -u USERNAME -p DATABASENAME <FILENAME.sql
이 명령을 실행하기 전에 데이터베이스 및 사용자 (데이터베이스에 대한 권한이있는)가 있어야합니다. 참고 위의 명령을 다른 소스에서 복사했습니다. 항상 덤프와 복원을 다음과 같이 수행합니다. DUMP : mysqldump -u DB_USER -h DB_HOST -pDB_PASSWORD DB_NAME | gzip -9 > DB_NAME.sql.gz
RESTORE :gunzip < PATH_TO_DUMP/DB_NAME.sql.gz | mysql -u DB_USER -pDB_PASSWORD DB_NAME
- 마지막으로 가장 고통스럽게도 개별 테이블 또는 테이블 그룹을 작은 덤프로 덤프하도록 선택할 수 있습니다. 그런 다음 PHPMYADMIN을 통해 이러한 개별 덤프를 한 번에 하나씩 복원하십시오.
FTP 및 복원 지침 :
여기에서 FileZilla를 다운로드하십시오 : http://filezilla-project.org/download.php?type=client
일반적으로 SSH와 동일한 로그인 및 비밀번호 (명령 줄 로그인)를 사용하여 서버 (특히 공유 호스트)에 FTP로 연결할 수 있습니다. FileZilla에서 서버와의 연결을 올바르게 설정하십시오.
연결되면 기본 경로는 $ HOME 폴더 일 것입니다 (nix 머신의 경우). 많은 FTP 작업을 계획하지 않는다면 원하는 것을 덤프하십시오. 항상 명령 행에서 이동할 수 있습니다.
MySQL 덤프를 $ HOME 폴더에 FTP로 저장 한 경우 myDB라는 DB 및 mydb.sql.gz ($ HOME 폴더에 있음)의 db 덤프 파일에 대한 RESTORE 명령은 다음과 같습니다.
gunzip < $HOME/mydb.sql.gz | mysql -u DB_USER -pDB_PASSWORD mydb
여기서 DB_USER 및 DB_PASSWORD 값을 DB에 대해 설정 한 사용자 및 비밀번호로 변경해야합니다.
생각해 내다:
- RESTORE 명령이 실행되기 전에 DB가 이미 존재해야하지만 비어 있어야합니다.
- RESTORE 명령 전에 DB에 대해 DB_USER 및 DB_PASSWORD를 설정해야합니다 (PHPMYADMIN-권한 탭에서 수행 할 수 있음).
- PHPMYADMIN에서 DB_USER를 설정하면 기본적으로 DB_USER가 로컬 호스트 (DB가 호스팅되는 서버)에서만 DB에 액세스 할 수 있습니다. 상황 보조금에 적합하다고 가정합니다. 고급 DUMP 및 RESTORE에 들어가면 완전히 어렵지 않지만 몇 가지 더 많은 정보가 제공되고 DB_USER에게 적절한 권한이 필요한 다른 머신에서 수행 할 수 있습니다.
DB를 FTP로 저장하고 복원하십시오 ... 단계별
- 데스크탑에서 압축 된 MySQL 덤프 파일을 찾으십시오 (예 : C : \ Web \ DB \ Dumps \ mydb.sql.zip)
- FileZilla 다운로드 및 설치
- FileZilla에서 File-> Site Manager로 이동하여 New Site 버튼 (GUI의 왼쪽 아래 사분면)을 클릭하십시오. DESTINATION 서버에있는 도메인을 호스트로 설정하십시오 (예 : dest.com). 프로토콜을 FTP 또는 SFTP로 설정하십시오 (이것은 호스팅에 따라 다릅니다). 사용자 및 비밀번호를 설정하십시오 (예 : User = grant, Password = grant 's password)-FTP 프로토콜이 SFTP이면 유효한 SSH 로그인 신임 정보 세트가 작동해야합니다.
- (FileZilla에서) 연결을 클릭하십시오 (맨 왼쪽 아래 버튼)
- (FileZilla에서) 원격 서버 (DESTINATION 서버 여야 함)에 연결되면 FileZilla의 왼쪽을 사용하여 1 단계에서 찾은 덤프 파일이있는 디렉토리로 이동하십시오. (로컬 머신의 경로는 맨 왼쪽에 약 절반 정도 내려 가며 로컬 사이트 :라는 레이블이 붙어 있습니다.이 예에서 로컬 사이트 옆의 텍스트 상자는 C : \ Web \ DB \ Dumps를 읽습니다.)
- (FileZilla에서) 로컬 사이트 :의 바로 오른쪽에서 원격 사이트 : 레이블을 찾으십시오.
- (FileZilla에서) FileZilla가 열리는 폴더에 DB DUMP를 넣을 수없는 기술적 이유는 없습니다. $ HOME 디렉토리가 기본값 일 것입니다. 조직의 목적과 같은 특정 디렉토리에 DB 덤프를 넣을 이유가없는 경우 원격 사이트에만 경로를 두십시오. 해당 경로를 적어 두십시오 (Linux 예 : / usr / grant).
- (FileZilla에서) 5 단계에서 찾은 로컬 사이트 : 레이블 아래에있는 트리 바로 아래의 FileZilla 왼쪽 절반에서 로컬 컴퓨터에서 파일을 찾으십시오. 해당 파일을 두 번 클릭하면 FileZilla가 원격 사이트로 FTP를 보냅니다.
- DESTINATION 서버의 PHPMYADMIN 내에서 새 데이터베이스를 작성하십시오 (새 데이터베이스 작성 텍스트 상자에 mydb를 입력하고 작성 단추를 클릭하십시오).
- (PHPMYADMIN에서) 왼쪽 메뉴에서 mydb를 선택하십시오.
- (PHPMYADMIN에서) 권한 탭을 클릭하십시오 (오른쪽 위). 해당 페이지에서 새 사용자 추가를 클릭하십시오.
- (PHPMYADMIN-> 권한-> 새 사용자 추가) 사용자 이름 (예 : mydb_grant)과 비밀번호 (예 : mydb_password)를 제공하십시오. 호스트 드롭 다운에서 로컬을 선택하십시오. "데이터베이스에 대한 모든 권한 부여"옆의 단일 선택 단추가 선택되어 있는지 확인하십시오. 그런 다음 이동 (화면 오른쪽 하단)을 클릭하십시오.
- DESTINATION 서버로 SSH 연결하십시오.
- (SSH 터미널에서) 7 단계에서 적어 둔 디렉토리로 이동하십시오.-
cd $HOME
또는 cd /usr/grant
. (Linux 시스템에서 $ HOME은 / usr / grant와 같은 환경 변수입니다.)
- (SSH 터미널에서) 다음 명령을 실행하십시오.
gunzip < /usr/grant/mydb.sql.gz | mysql -u mydb_grant -pmydb_password mydb
(-p와 비밀번호 사이에는 공백이 없어야합니다. 이는 오타가 아닙니다.)
마지막 명령이 완료되면 DB가 RESTORED되었습니다. 제공 한 DB 사용자 및 비밀번호를 사용하는 것은 권장하지 않으며보다 안전한 사용자 선택으로 교체하십시오.
FTP가없는 다른 서버에서 덤프 및 복원
FTP 항목을 건너 뛰고 DUMP를 다시 실행하는 것을 신경 쓰지 않으려면 다음과 같이하십시오.
- DESTINATION 서버에 로그인하십시오 (DB가 상주 할 곳-destination.com이라고 함).
- DESTINATION 서버에서 위에서 언급 한대로 DB, 사용자 및 적절한 권한을 작성하십시오.
- SOURCE 서버의 권한으로 SOURCE_DB_USER가 원격으로 DB에 액세스 할 수 있는지 확인하십시오. dest.com 또는 % (%-모든 사용자 및 올바른 사용자 이름과 비밀번호가있는 모든 곳에서 액세스)
- DESTINATION 서버에서 다음을 실행하십시오.
mysqldump -u SOURCE_DB_USER -h source.com -pSOURCE_DB_PASSWORD mydb| gzip -9 > $HOME/mydb.sql.gz
여기서 source.com은 SOURCE 서버 (DB가 현재 상주하는 서버)입니다.
- 그런 다음 DESTINATION 서버에서 다음을 실행하십시오.
gunzip < $HOME/mydb.sql.gz | mysql -u DEST_DB_USER -pDEST_DB_PASSWORD mydb
한 서버에서 다른 서버로 DB를 이동하기 위해 필요한 모든 것입니다. 주의 사항은 필자가 자신의 전용 우분투 (표준 LAMP 사용)와 Dreamhost의 VPS 서버 (CentOS를 실행한다고 생각하지만 잘못 될 수 있음)에서만 수행 한 것입니다.