AWS RDS의 MariaDB에서 데이터베이스 이름에 하이픈을 사용하려는 경우의 조치

tl; dr



MariaDB (Mysql)의 데이터베이스 이름에 하이픈을 넣고 싶다면 CREATE DATABASE를 직접 접으십시오.
이 때 데이터베이스 이름은 백 쿼트로 묶어 보자.
AWS RDS의 GUI에서는 "-"가 금지 문자로 되어 있다.

설명



AWS RDS GUI에서는 데이터베이스 이름에 하이픈이 허용되지 않습니다.


그럼 직접, CREATE DATABASE 를 직접 두드리려고 했지만, 구문 에러가 되었다.
MariaDB [(none)]> create database test-test;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '-test' at line 1

조사해 본 결과, 하이픈을 포함하는 경우는 백쿼트가 필요했던 모양.
수정하고 다시 작성해 보면 잘 됐다.
MariaDB [(none)]> create database `test-test`;
Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> show databases like 'test%';
+------------------+
| Database (test%) |
+------------------+
| test-test        |
+------------------+
2 rows in set (0.00 sec)

환경 차이가 있는 경우



해소를 위해서, 데이터베이스명 변경 대응을 실시했다.RENAME DATABASE 는 사용할 수 없기 때문에 다음과 같이 대응했습니다.
  • 올바른 이름으로 CREATE DATABASE 실행
  • mysqldump에서 잘못된 데이터베이스에서 데이터를 내보내기
  • mysqldump에서 올바른 데이터베이스로 2. 데이터를 가져옵니다.
  • 잘못된 데이터베이스 DROP

  • 비고



    확신은 없지만, 옛날에는 AWS RDS의 GUI에서는 「-」는 허가되고 있었던 것 같다.
    근거는, 같은 순서로 RDB를 만들고 있었는데, 데이터베이스명에 환경 차이가 나오고 있었기 때문에.
    도중에 「-」를 금지 문자로 했기 때문에, 이렇게 되었다고 하는 고찰.

    좋은 웹페이지 즐겨찾기