본문 바로가기

Databases/MySQL

MySQL 데이터베이스명 변경

MySQL 에서는 기본적으로 데이터베이스명 변경을 허용하지 않다가 

5.1.7  이후 버전에서 rename database 구문을 업데이트 하여 사용 할 수 있게 하였으나 위험 가능성이 높은 구문으로 판단 하고 5.1.23 이후 버전 부터 다시 제거 됐다.

(참고: http://dev.mysql.com/doc/refman/5.1/en/rename-database.html)


하지만 rename 구문이 제공되지 않는다고 해서 데이터베이스명을 변경 할 수 없는 것은 아니다.

새로운 데이터베이스를 생성하고 기존의 테이블을 매핑 시켜 주는 방법이 있다.

(데이터베이스 내의 테이블 리스트를 얻는 방법은 여러가지가 있으므로 생략한다)


mysql> create database <new_database>;

mysql> rename table <old_database.table_name> to <new_database.table_name>


이후 procedure도 옮길 필요가 있을 경우 아래와 같이 업데이트를 해주자


mysql> update mysql.proc set db='old_database' where db='new_database';


이외 데이터베이스명 변경 시 필요항 항목들도 체크가 필요하다.