mysql_8_대소문자_구분설정

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

mysql_8_대소문자_구분설정 [2020/02/18 13:14] (현재)
koov 만듦
줄 1: 줄 1:
 +====== MySQL 8 대소문자 구분 설정 ======
 +
 +MySQL Database는 기본적으로 대소문자를 구분하도록 되어있다. (UNIX/​LINUX)
 +Windows 시스템에서는 상관이 없는데 UNIX/Linux 시스템에서는 구분을 하게 되어있으므로 주의하도록 한다.
 +
 +대소문자 구분을 하지 않도록 하기 위해서는 아래와 같이 my.cnf 에 설정하여야 한다.
 +
 +<WRAP prewrap>
 +<code vim /​etc/​my.cnf>​
 +[mysqld]
 +lower_case_table_names = 1
 +</​code>​
 +</​WRAP>​
 +
 +간혹 이미 설정하기 전에 대문자가 들어간 Database나 Table를 만들어놓고 이후에 적용하려고 하면 오류가 나면서 데이터베이스 엔진이 기동되지 않는 경우가 있다.
 +
 +이럴 경우 방법은 아래와 같이 여러가지 방법이 있다.
 +
 +  - 데이터베이스 초기화
 +  - 대문자를 소문자로 변경 후 재기동
 +  - 데이터베이스 백업/​복구
 +
 +===== 방법 1: 데이터 베이스 초기화 =====
 +일단 모든 데이터 베이스를 초기화 하는 방법이다.
 +
 +리눅스인 경우 데이터 파일이 ''/​usr/​lib/​mysql/''​ 디렉토리에 아래에 저장되는데 그냥 이 디렉토리 내의 모든 파일을 다 삭제하는 것이다.
 +다 삭제한 이후에 데이터베이스를 처음부터 새로 구성하는 방법이다.
 +
 +<WRAP prewrap>
 +<code bash>
 +# 일단 데이터베이스를 정지시키고
 +[root@test7 ~]# systemctl stop mysqld
 +
 +# 데이터 파일을 모두 제거
 +[root@test7 ~]# rm -rf /​var/​lib/​mysql/​*
 +
 +# 설정 변경
 +[mysqld]
 +lower_case_table_names=1
 +
 +# 재기동
 +[root@test7 ~]# systemctl start mysqld
 +</​code>​
 +</​WRAP>​
 +
 +===== 방법 2: 소문자로 변경 후 재기동 =====
 +이미 만들어져 있는 데이터베이스/​테이블의 이름을 일단 소문자로 모두 변경 후 재기동 하는 방법이다.
 +
 +<WRAP prewrap>
 +<code mysql>
 +mysql> select concat('​rename table ', table_name, ' to ' , lower(table_name) , ';'​) from information_schema.tables where table_schema = '​your_schema_name';​
 +</​code>​
 +</​WRAP>​
 +
 +참조링크 : https://​stackoverflow.com/​questions/​1262258/​mysql-case-sensitive-tables-conversion
 +
 +===== 방법 3: 데이터베이스 백업/​복구 =====
 +
 +방법 1과 같은 방법이다. ​
 +먼저 데이터를 백업한 후 방법 1을 적용하고 나중에 다시 복구하는 방법이다.
 +[[MySQL DB Backup / Restore]]를 참조하면 된다.
 +
 +===== 참조링크 =====
 +  * https://​dev.mysql.com/​doc/​refman/​8.0/​en/​identifier-case-sensitivity.html
 +  * https://​stackoverflow.com/​questions/​51803216/​lower-case-table-names-settings-in-mysql-8-0-12
 +  * https://​www.lesstif.com/​pages/​viewpage.action?​pageId=14745775
  
  • mysql_8_대소문자_구분설정.txt
  • 마지막으로 수정됨: 2020/02/18 13:14
  • 저자 koov