MySQL 8 대소문자 구분 설정
MySQL Database는 기본적으로 대소문자를 구분하도록 되어있다. (UNIX/LINUX)
Windows 시스템에서는 상관이 없는데 UNIX/Linux 시스템에서는 구분을 하게 되어있으므로 주의하도록 한다.
대소문자 구분을 하지 않도록 하기 위해서는 아래와 같이 my.cnf 에 설정하여야 한다.
[mysqld] lower_case_table_names = 1
간혹 이미 설정하기 전에 대문자가 들어간 Database나 Table를 만들어놓고 이후에 적용하려고 하면 오류가 나면서 데이터베이스 엔진이 기동되지 않는 경우가 있다.
이럴 경우 방법은 아래와 같이 여러가지 방법이 있다.
- 데이터베이스 초기화
- 대문자를 소문자로 변경 후 재기동
- 데이터베이스 백업/복구
방법 1: 데이터 베이스 초기화
일단 모든 데이터 베이스를 초기화 하는 방법이다.
리눅스인 경우 데이터 파일이 /usr/lib/mysql/
디렉토리에 아래에 저장되는데 그냥 이 디렉토리 내의 모든 파일을 다 삭제하는 것이다.
다 삭제한 이후에 데이터베이스를 처음부터 새로 구성하는 방법이다.
# 일단 데이터베이스를 정지시키고 [root@test7 ~]# systemctl stop mysqld # 데이터 파일을 모두 제거 [root@test7 ~]# rm -rf /var/lib/mysql/* # 설정 변경 [mysqld] lower_case_table_names=1 # 재기동 [root@test7 ~]# systemctl start mysqld
방법 2: 소문자로 변경 후 재기동
이미 만들어져 있는 데이터베이스/테이블의 이름을 일단 소문자로 모두 변경 후 재기동 하는 방법이다.
mysql> select concat('rename table ', table_name, ' to ' , lower(table_name) , ';') from information_schema.tables where table_schema = 'your_schema_name';
참조링크 : https://stackoverflow.com/questions/1262258/mysql-case-sensitive-tables-conversion
방법 3: 데이터베이스 백업/복구
방법 1과 같은 방법이다.
먼저 데이터를 백업한 후 방법 1을 적용하고 나중에 다시 복구하는 방법이다.
MySQL DB Backup / Restore를 참조하면 된다.
참조링크
로그인하면 댓글을 남길 수 있습니다.