스터디/트러블 슈팅
[MySQL] 데이터베이스 이름 변경하기
skyggg3
2022. 8. 24. 20:06
문제 상황
강사님이 제공해주신 쿼리문을 돌려보는데 아래와 같은 에러가 발생했다.
에러 코드 | 1049 |
에러 메시지 | Error Code: 1049. Unknown database 'instacart' |
발생 이유 | 워크벤치에서 DB를 생성하는 과정에서 DB명을 'instaccart '라고 잘못 지정했다(오타가 들어감). 쿼리문에 있는 DB명 'instacart'와 일치하지 않아서 Unknown database 에러가 발생했다. |
해결 방법 | 1) 워크벤치 GUI에서 변경하기 Alter Schema 메뉴에 이름을 변경할 수 있는 곳이 있는데, 이유는 모르겠지만 비활성화되어 있어 사용할 수 없었다. 2) 스크립트에 있는 쿼리문 변경하기 ctrl+F로 쿼리문에서 'instaccart'를 찾아서 'instacart'로 변경한다. 가장 쉽고 간편하다. 3) DB를 삭제하고 다시 생성 이방법으로 하려면 테이블을 다시 import해야하는데 시간이 오래 걸린다. 4) 비어있는 새로운 DB를 만들고 테이블 옮기기 1번은 사용 불가이고, 2번은 임시방편, 3번은 시간이 오래걸리는 같은 작업을 반복하는 게 비효율적이라고 생각해서 이 방법을 선택했다. 잘못된 DB명을 바꾸는게 맞다고 판단한 이유도 있다. |
해결 과정
새로운 데이터베이스 생성하기
CREATE DATABASE DB명
CREATE DATABASE instacart;
테이블 목록 확인하기
show tables;
테이블 옮기기
RENAME TABLE 테이블명 TO 새DB명.테이블명
RENAME TABLE aisles TO instacart.aisles;
RENAME TABLE departments TO instacart.departments;
RENAME TABLE order_products__prior TO instacart.order_products__prior;
RENAME TABLE orders TO instacart.orders;
RENAME TABLE products TO instacart.products;
기존 DB 삭제하기
DROP DATABASE DB명
DROP DATABASE instaccart;