Linux Server/mysql

[mysql] myisam -> innodb 변경

실력키우기 2017. 2. 20. 01:26
  • MySQL Version : 5.1.73
  • OS : CentOS 7

1. 기존(MyISAM으로 설정된) DB를 Dump 백업합니다.

mysqldump -u {로그인아이디} -p {백업할 데이터베이스 이름} > {덤프파일 명}

# mysqldump -u root -p test_db > test_db.sql



엔진이 정상적으로 변경 되었음에도 불구하고 database에 프로시저가 덤프가 안떠져서 소스코드나 , 어플이 정상작동 안할수있다.

아래 옵션을 주고 덤프하면 procedure, function, trigger 를 포함하여 백업이 가능하다.


# mysqldump --routines  --trigger -u유저이름 -p패스워드 DB명 > 백업파일


# mysqldump --routines --trigger -u root -p les > les.sql

2. 복원시 InnoDB로 적용하기 위해 덤프파일의 내용을 변경합니다.

# sed -e 's/ENGINE=MyISAM/Engine=InnoDB/g' {덤프파일 명} > {새로 적용할 덤프파일 명}

# sed -e 's/ENGINE=MyISAM/Engine=InnoDB/g' test_db.sql > test_db2.sql

3. mysql 콘솔에 접속 후 기존의 데이터베이스를 삭제하고 새로 생성합니다.

mysql> drop database {삭제할 데이터베이스 명}

mysql> drop database test_db

mysql> create database {생성할 데이터베이스 명}

mysql> create database test_db

4. 변경된 덤프파일을 이용해 데이터 베이스를 복원합니다.

# mysql -u {로그인 아이디} -p {복원할 데이터베이스 명} < {새로 적용할 덤프파일 명}

# mysql -u root -p test_db < test_db2.sql

출처 : http://www.33gram.com/