728x90
MySQL 5.1.23 버전 이후로 RENAME DATABASE 구문이 제거되었기 때문에 이미 생성한 데이터베이스의 이름을 변경하고 싶은 경우, 새로운 데이터베이스를 만들어서 그 데이터베이스에 기존 데이터베이스를 옮겨주는 방식으로 가능하다.
1. RENAME TABLE 사용
CREATE DATABASE '새로운 DB명';
RENAME TABLE '기존DB.테이블명' TO '새DB.테이블명';
DROP DATABASE '기존DB명';
방법은 매우 간단하지만 테이블이 많을 경우 작업을 여러번 해야 한다는 번거로움이 있다. concat을 사용하여 반복 작업을 자동화 하는 방법이 있지만 이 게시글에선 따로 설명하지 않고 MySQL 공식 문서에 있는 방법을 소개한다.
2. mysqldump 사용
$> mysqldump -u root -p db1 > dump.sql # 기존 DB sql문으로 dump $> mysqldump -u root -p --routines db1 > dump.sql # 옮길 procedure가 있는 경우 $> mysqladmin -u root -p create db2 # 새로운 DB 생성 $> mysql -u root -p db2 < dump.sql # 새 DB에 기존 DB dump를 덮어씌움 $> mysql -u root -p -e "DROP DATABASE db1" # 기존 DB 삭제
기존 DB의 dump 파일을 만들어서 새 DB에 옮기는 방식이다.
아래에 MySQL 공식 문서를 링크해두었다.
https://dev.mysql.com/doc/refman/8.0/en/mysqldump-copying-database.html
728x90
'데이터베이스' 카테고리의 다른 글
데이터베이스 명명 규칙 (Naming Conventions) (0) | 2022.06.29 |
---|---|
[MySQL] DATE, DATETIME, TIMESTAMP의 차이 (0) | 2022.06.23 |
Mysql 예약어를 필드명, 컬럼명으로 사용시 해결방법 (0) | 2021.11.23 |
MySQL 외부/원격 접속 안될 때(공유기 사용자) (0) | 2021.05.17 |
회원 테이블 생성 시 회원번호 컬럼을 만들어야 하는 이유 (0) | 2021.05.14 |