Databases/MySQL
MySQL 데이터베이스명 변경
c0desway
2013. 2. 19. 10:59
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';
이외 데이터베이스명 변경 시 필요항 항목들도 체크가 필요하다.