PHP MySQL 이전 (scp 활용)

Crystal Clear action info.png 작성 중인 문서입니다.
PHP MySQL 이전 (scp 활용)

1 문제 상황[ | ]

PHP MySQL 이전 문서대로 하다보니 압축파일 생성부분에서 디스크 용량 부족.

[root@host1 html]# tar -jcvf ../docfiles.bz2 .
./
./account/
./account/sticker.js
./account/index.php

bzip2: I/O or other error, bailing out.  Possible reason follows.
bzip2: Disk quota exceeded
	Input file = (stdin), output file = (stdout)

당연히 mysqldump도 불가

[root@host1 html]# mysqldump -uroot -p --databases my_db > my_db.sql
Enter password: 
sda7: write failed, user block limit reached.
mysqldump: Got errno 122 on write
→ scp로 직접 전송해보자.

2 PHP 파일 가져오기[ | ]

host1(domain1.com)의 /var/www/html을 host2(domain2.com)로 /var/www/html로 복사해보자. (실제로는 host2에 접속한 후 host1의 파일을 복사해옴)

  • host2(신규 서버)에 접속
명령어
cd /DOC폴더
scp -r 계정@예전도메인:/DOC폴더/* .
실행예시
[root@host2 ~]# cd /var/www/html
[root@host2 html]# scp -r root@domain1.com:/var/www/html/* .
root@domain1.com's password:
→ host1에 접속하기 위한 패스워드를 입력한다.
arrow_left.gif                                100%   56     0.1KB/s   00:01    
goods.php                                     100%   21KB  21.3KB/s   00:00    
... (생략)
→ 파일들이 전송되었다.

3 MySQL 덤프 가져오기 (셸)[ | ]

host2에서 host1(또는 별도의 DB서버)의 DB 덤프를 받아올 수 있다.

명령어
mysqldump --host=도메인1 -u계정 DB명 > DB명.sql
실행예시 (실패)
[root@host2 html]# mysqldump --host=domain1.com -uroot my_db > my_db.sql
mysqldump: Got error: 1130: Host '111.222.33.55' is not allowed to connect to this MySQL server when trying to connect

위와 같은 메시지가 나온다면 host1이 host2(111.222.33.55)의 접근을 허용하지 않는 것이다. host1에서 host2의 접속을 허용하면 되는데, 필자는 그렇게 하지 않고 phpMyAdmin에서 덤프를 다운로드하는 방법으로 전환하였다.

4 MySQL 덤프 가져오기 (웹)[ | ]

  • host1(domain1.com)의 phpMyAdmin 에 접속[1]
  • phpMyAdmin 로그인
  • 이전할 DB명 클릭
  • [Export][2]
  • [V] 파일로 저장
  • [실행] 클릭하여 다운로드 시작
  • 다운로드 받은 파일을 host2에 업로드

5 MySQL 덤프 자료넣기[ | ]

명령어
mysqladmin -u계정명 -p패스워드 create DB명
mysql -u계정명 -p패스워드 DB명 < DB명.sql
실행예시
[root@host2 ~]# mysqladmin -uroot -pP@ssw0rd create my_db
[root@host2 ~]# mysql -uroot -pP@ssw0rd my_db < my_db.sql

6 같이 보기[ | ]

7 주석[ | ]

  1. 예를 들어 http://domain1.com/phpMyAdmin 이런 주소로 설정되어 있겠지?
  2. 한국어판이라면 [내보내기]
문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}