# mysql 에서 제공하는 mysqldump 를 이용하는 방법# 여기에서 언급하고자 하는 것은
phpMyAdmin 같은 툴을 이용하는 방법
mysql console 에서 INTO OUTFILE 등으로 백업하는 방법
# mysqldump 같은 명령도 php 내의 system 함수등을 이용해 할 수도 있다.
또한 INTO OUTFILE mysql console 명령도 php 에서 쿼리로 날려서 할 수도 있다.
( http://www.php-mysql-tutorial.com/perform-mysql-backup-php.php)
PHP 에서 mysql_query 명령으로 INTO OUTFILE 쿼리를 이용해 백업받는 부분이다.
이 방법을 사용할 때 주의할 부분을 정리하고자 한다.
1. 먼저 mysql console 접속할 USER 의 File_Priv 권한이 'Y' 이어야 한다.
update user set File_Priv = 'Y' where User = '{유저이름}' ; 등으로 바꿔준다.
설정을 바꾼 후 바로 적용이 되지 않고, # mysqladmin reload 등으로 설정을 적용시킨다.
2. 파일이 저장되는 경로 및 퍼미션(권한)을 확인한다. 확실한 방법은 절대경로를 써준다.
예) /data/backup/xxxx.sql
%주의% 절대경로를 써주지 않으면, mysql 데이터가 있는 경로에 저장이 된다.( /var/lib/mysql/{DB명} )
권한(퍼미션) 부분은 파일이 mysql 의 user/group 으로 저장이 되기 때문에
보통(nobody , www-data) 의 권한으로 된 경로는 other 권한에 쓰기 권한이 있어야 한다.
안되어 있다면, # chmod 777 {경로} 처럼 바꾸어 준다.
3. 적당한 쿼리값을 INTO OUTFILE '{저장할 파일명}' 형식으로 저장한다.
mysql connection 을 생성 후에 (in PHP)
$query = " SELECT * INTO OUTFILE '$backupFile' fields terminated by '|' FROM $tableName ; " ;$backupFile , $tableName 은 적당한 값으로 설정.
mysql_query( $query ) ;
4. 해당 백업파일로 복구할때는 LOAD DATA INFILE
백업시 fields ... 에 써 넣은 옵션을 그대로 써준다.
$query = " LOAD DATA INFILE '$backupFile' INTO TABLE $tableName fields terminated by '|' ; " ;이때도 절대경로를 써주는 것이 좋다.
mysql_query( $query ) ;
그냥 xxx.sql 등의 파일이름만 적으면 /var/lib/mysql/{DB}/xxx.sql 을 찾게 된다.
# 참조 :
http://dev.mysql.com/doc/refman/5.0/en/select.html

http://dev.mysql.com/doc/refman/5.0/en/load-data.html

받은 트랙백이 없고
,
댓글이 없습니다.
,
트랙백 주소 :: http://taemy.experlab.com/trackback/348
% 공지 : 혹시 트랙백이 안되시면, 댓글로 관련글을 남겨주세요.(수동트랙백) %



댓글을 달아 주세요