ColdFusion에서 MySQL DB한방에 백업받기
Category : ColdFusion , Database Comments : 댓글쓰기 Posted by 장창학 at 12:47 PM
Bookmark and Share

ColdFusion에서 MySQL을 백업받기 위해서는 실제 MySQL의 유틸리티중 mysqldump를 이용하면 됩니다. 일반적으로 mysql db를 콘솔상에서 백업받으려면, 다음과 같이 명령어를 입력합니다.

$ mysqldump -uusername -puserpassword --database sampledb -> /home/username/sampledb_backup.sql

username과 userpassword는 당연히 mysql서버의 사용자ID와 패스워드입니다. 물론, sampledb는 사용자의 db명이고요. 위 명령어는 sampledb를 백업하여, /home/username디렉토리에 sampledb_backup.sql로 저장하라는 명령입니다.

자, 이제 ColdFusion에서 실행하려면 다음과 같이 하면 됩니다. mysqldump와 같은 shell명령어를 실행하려면, <CFEXCUTE>태그를 이용합니다. Unix, Linux는 물론, Windows의 명령어(*.exe나 *.bat등)도 실행가능합니다. 따라서 보안에 매우 위험한 태그여서 일반적인 ColdFusion웹호스팅환경에서는 사용이 금지되는 태그이기도 합니다.(웹호스팅환경에서는 거의 금지태그입니다. 물론 허용이 되었다고 하더라도, 사용자등급에 따라 시스템의 사용자그룹별로 명령어를 실행하는 권한을 제한해 놓았다면 결과는 실행되지 않겠죠?)

cfexecute name="mysqldump" arguments="--user=사용자명 --password=패스워드 사용자DB명" outputfile="/home/사용자명/mysqldump_#DateFormat(Now(), "YYYYMMDD")#_sql.sql" timeout="30"

위 CFML코드는 Linux상에서 mysqldump명령어를 실행하여, argument로 명령줄을 전송하고, 결과를 *.sql파일로 지정된 경로에 저장하라는 태그입니다. 이 코드가 입력된 cfm파일을 브라우저에서 호출하면 지정된 경로에 백업된 sql파일이 덤프되어 있습니다. 실제로는 백업되는 현재날짜별로 파일명에 규칙이 정해져 백업됩니다.(위 예제에서 명령줄의 앞뒤로 <와 >를 추가하세요. Railo등의 CF엔진은 이런 위험한(?)명령어 내용을 페이지에 디스플레이할때 Script Protect기능이 적용되어 <와 >를 각각 반대로 치환해 버립니다.ㅠㅠ)

Comments


Write your comment



(it will not be displayed - 실제로 댓글 목록에서는 출력되지 않습니다)



Leave this field empty:




About me

Categories

Monthly Archives

Links

Recent Posts

Recent Comments