티스토리 뷰
<< MySQL 백업 & 복구하기 >>
History :
2007/09/28 : MySQL 입력시 한글 깨지는것 해결 방법
2001/10/30 : 문서 최초 작성
##############################################################################
백업을 하기 위해서는 mysqldump 명령어를 사용합니다.
그리고, 복구를 하기 위해서는 mysql 명령어를 사용합니다.
이 명령어의 path 를 잡아주세요.!!
형식은 다음과 같습니다.
(참고: [] 는 선택 항목입니다.)
user> mysqldump [-h 호스트] [-u 사용자] [-p] DB명 [table명]> 백업파일
user> mysql [-h 호스트] [-u 사용자] [-p] DB명 < 백업파일
예제 1) root 라는 사용자가 mydb 를 백업하는 명령입니다.
이렇게 하시면 mydb.sql 파일에 sql문으로 저장이 됩니다.
user> mysqldump -u root -p mydb > mydb.sql
예제 2-1) 백업된 mydb.sql 을 newdb 에 입력하는 방법
user> mysql -u dbakorea -p newdb < mydb.sql
예제 2-2) 한글이 깨지는 경우 문자셋을 설정하여 입력하는 방법
1. 테이블 문자셋 확인
2. 이력 파일의 문자셋 확인
3. 문자셋 지정 입력
user> mysql -u dbakorea -p --default-character-set=euckr newdb < mydb.sql
##############################################################################
<< 형화가 사용하는 프로그램 >>
###################
# 사용하기전에 할일
###################
1. 작업을할 디렉토리(dir/)를 만들고 cgi 파일을 만든 디렉토리에 복사한다.
앞으로 작업디렉토리를 dir 이라 하겠다.
2. dir 밑에 temp 디렉토리를 만들고 권한을 700 으로 준다.
user> mkdir -p dir/temp
user> chmod 700 temp
###########
# 백업하기
###########
user> chmod 700 mysqldump.cgi
user> perl mysqldump.cgi
db_list 파일이 생성 되었는지 확인한다.
################
# DB 생성하기
################
dbinput_list 파일은 mysqldump.cgi 에 의해 만들어진 db_list 파일을
복사해서 사용하면 된다. 생성이 필요없는 DB는 지우면 된다.
(주의: 처음 3줄은 삭제를 하지 말아라.)
user> chmod 700 mysqldbcreate.cgi
user> perl mysqldbcreate.cgi
################
# DB에 입력하기
################
dbinput_list 파일에 입력할 DB 를 추가한다.
(주의: mysql DB 는 빼는게 좋다.)
user> chmod 700 mysqlinput.cgi
user> perl mysqlinput.cgi
####################
# 사용되는 파일들
####################
======================== mysqldump.cgi ===============================
#!/usr/bin/perl
# Linux에 있는 모든 DB를 DB_name.dump 파일에 dump한다.
# 1999,12,2
# $mysql_path = "/usr/local/bin"; # FreeBSD
$mysql_path = "/usr/local/mysql/bin";
$passwd = ""; # root 비번을 입력한다.
$host = ""; # 접속할 호스트 (외부에 DB가 있는 경우만 사용한다.)
if( $passwd ne '){
$passwd = " -p$passwd";
}
if( $host ne '){
$host = " -h $host";
}
`$mysql_path/mysqlshow -uroot $passwd $host > db_list`;
open( IN, 'db_list' );
$start = 0;
while( <IN> ) {
if( $start ne 3 ) {
$start ++;
# print "start:$_n";
next;
}
elsif ( $_ !~ / / ) { # Blank
next;
}
chop();
( $a, $db, $c ) = split( /|/, $_);
$db =~ s/ //g;
# 각 DB의 dump파일을 생셩한다.
`$mysql_path/mysqldump -uroot $passwd $host $db > temp/$db.dump`;
print "$db Dumpedn";
}
close( IN );
======================== /mysqldump.cgi ===============================
======================== mysqldbcreate.cgi ===============================
#!/usr/bin/perl
# dbinput_list에 있는 모든 DB를 생성한다.
# 2000. 4. 5
# dbinput_list 파일은 mysqldump.cgi 에 의해 만들어진 db_list 파일을
# 복사해서 사용하면 된다. 생성이 필요없는 DB는 지우면 된다.
# (주의: 처음 3줄은 삭제를 하지 말아라.)
# $mysql_path = "/usr/local/bin"; # FreeBSD
$mysql_path = "/usr/local/mysql/bin";
$passwd = ""; # root 비번을 입력한다.
$host = ""; # 접속할 호스트 (외부에 DB가 있는 경우만 사용한다.)
if( $passwd ne '){
$passwd = " -p$passwd";
}
if( $host ne '){
$host = " -h $host";
}
open( IN, 'dbinput_list' );
$start = 0;
while( <IN> ) {
if( $start ne 3 ) {
$start ++;
next;
}
elsif ( $_ !~ / / ) { # Blank
next;
}
chop();
( $a, $db, $c ) = split( /|/, $_);
$db =~ s/ //g;
# 각 DB를 생성한다.
`$mysql_path/mysqladmin -uroot $passwd $host create $db`;
print "$db Createdn";
}
close( IN );
# 설정을 다시 읽는다.
`$mysql_path/msyqladmin -uroot $passwd $host reload`
======================== /mysqldbcreate.cgi ===============================
======================== mysqlinput.cgi ===============================
#!/usr/bin/perl
# dbinput_list에 있는 모든 DB를 각 DB에 입력한다.
# 2000. 4. 3
# $mysql_path = "/usr/local/bin"; # FreeBSD
$mysql_path = "/usr/local/mysql/bin";
$passwd = ""; # root 비번을 입력한다.
$host = ""; # 접속할 호스트 (외부에 DB가 있는 경우만 사용한다.)
if( $passwd ne '){
$passwd = " -p$passwd";
}
if( $host ne '){
$host = " -h $host";
}
open( IN, 'dbinput_list' );
$start = 0;
while( <IN> ) {
if( $start ne 3 ) {
$start ++;
next;
}
elsif ( $_ !~ / / ) { # Blank
next;
}
chop();
( $a, $db, $c ) = split( /|/, $_);
$db =~ s/ //g;
# 각 DB에 dump파일을 입력한다.
`$mysql_path/mysql -uroot $passwd $host $db < temp/$db.dump`;
print "$db Insertedn";
}
close( IN );
======================== /mysqlinput.cgi ===============================
'Database' 카테고리의 다른 글
MySQL 속에 이미지 저장하기 (0) | 2008.04.05 |
---|---|
MySQL 명령어들 (0) | 2008.03.13 |
MS SQL .ldf 파일 사이즈 조절하기 (0) | 2008.03.12 |
[활용팁] phpMyAdmin 설치/사용자 추가방법 (0) | 2008.01.28 |
PostgreSQL + unixODBC without X-Window (0) | 2006.06.05 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- 3D Engine
- 야마꼬툰
- humor
- Military
- cartoon
- Assembly
- network
- USB Lecture
- medical
- Battle
- 나비효과
- 프리랜서로 살아남는 법
- Mabinogi
- diary
- Embedded System
- Linux
- 짤방 및 아이콘
- wallpaper
- Reverse Engineering
- Tech News
- C#
- Life News
- BadCode
- win32
- Information Processor
- console
- WDB
- 막장로그
- Network Inspector
- Web Programming
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함