| | 1 | [[PageOutline]] |
| | 2 | = mysqlhotcopy = |
| | 3 | mysqlhotcopy는 더이상 지원을 하지 않을 예정이다. 따라서 mysqlhotcopy를 써야 하는 상황이면 ["MariaDB mariabackup" mariabackup]을 사용하는 것이 낫다. |
| | 4 | |
| | 5 | mysqlhotcopy는 일반적인 응급상황시 대비용으로 백업하는 용도로는 제일 낫다. 데이터베이스 파일 자체를 백업하기 때문에 속도도 빠르고 다루기도 쉽기 때문이다. 더군다나 여러 문자셋이 하나의 데이터베이스에 존재해도 한 번에 데이터베이스 전부를 백업할 수 있다. 하지만 결정적인 단점이 있다. |
| | 6 | - '''MyISAM 테이블밖에 지원이 되지 않는다.''' |
| | 7 | - MySQL 버전이 달라지면 백업을 복원해도 제대로 작동하지 않는다. 특히 4.1 미만 버전에서 4.1 버전으로 바뀌었을 때 이 것 때문에 난리가 난 적이 있다. |
| | 8 | |
| | 9 | 그 외에도 다음과 같은 단점이 있다. |
| | 10 | - 펄 스크립트이므로 펄이 설치되어있어야 작동한다. |
| | 11 | - 윈도우용 MySQL에서는 해당 명령이 없다. Perl 스크립트이기 때문에 굳이 사용한다면 Perl을 설치하면 가능할 수도 있겠다. |
| | 12 | |
| | 13 | 따라서 mysqlhotcopy를 이용해 백업할 것인지 ["MariaDB mysqldump" mysqldump]를 이용해 백업할 것인지 잘 판단해야 한다. |
| | 14 | |
| | 15 | == 1. 사용하는 방법 == |
| | 16 | '''mysqlhotcopy -u''' [mysql user 이름] '''-p''' [암호] '''--allowold''' [데이터베이스 이름] [데이터 파일이 저장될 경로명 혹은 새로운 데이터베이스명] |
| | 17 | |
| | 18 | - 다른 MySQL 명령과는 달리 -p 옵션 다음에 빈칸이 들어가는 점을 주의해야 한다. |
| | 19 | === 예 === |
| | 20 | {{{ |
| | 21 | mysqlhotcopy -u root -p password --allowold test ~ |
| | 22 | }}} |
| | 23 | |
| | 24 | === 2. 권한 === |
| | 25 | mysqlhotcopy를 사용하려면 권한이 필요하다. |
| | 26 | |
| | 27 | - 일단 flush tables 명령을 실행하기 위해서는 [mysql user 이름]에 mysql의 reload 권한이 필요하다. |
| | 28 | {{{ |
| | 29 | mysql> update user set reload_priv='Y' where user='[mysql user 이름]'; |
| | 30 | mysql> flush privileges; |
| | 31 | }}} |
| | 32 | |
| | 33 | * 그리고 백업 파일을 생성하기 위해서는 mysqlhotcopy를 실행하는 사용자에게(MySQL user 이름이 아니다. 혼동하지 말 것) 리눅스의 파일 권한이 필요하다.(MySQL 권한이 아닌 리눅스의 파일 권한이다. 혼동하지 말 것). |
| | 34 | - 우선 백업파일을 생성할 권한이 있어야 하고, |
| | 35 | - mysql 데이터 파일을 읽을 수 있는 권한이 필요하다. |
| | 36 | |
| | 37 | * 이런 복잡한 권한 때문에 골치아프기 싫다면 root로 명령을 실행하는 것을 추천한다. |
| | 38 | |
| | 39 | ---- |
| | 40 | [관련 링크] : [WikiStart 처음으로], ["MariaDB mysqldump" mysqldump], ["MariaDB 증분 백업" 증분 백업], ["MariaDB mariabackup" mariabackup] |
| | 41 | ---- |
| | 42 | |