Database ( DB )/Database

MariaDB 10.4 대소문자 구분 설정하는 방법

노루아부지 2021. 5. 2. 16:27

Linux에서 MariaDB 설치한 후 query 시, 대소문자를 구분하는 문제가 있습니다.

(Windows에 설치 할 경우 이런 문제가 없습니다.)

그 이유는 lower_case_table_names 옵션 때문인데요

 

이 옵션의 값은 아래와 같습니다.

 

lower_case_table_names 옵션 값

  • lower_case_table_names=0 : 테이블 생성 및 조회 시 대/소문자 구분
  • lower_case_table_names=1 : 입력 값을 모두 소문자로 인식. 즉, 대소문자 구분하지 않음
  • lower_case_table_names=2 : 윈도우에서 대/소문자를 구분해서 테이블 생성

 

 

아까 Windows에서는 대소문자를 구분하지 않는다고 했는데, 그 이유는 OS별로 default value가 다르기 때문입니다.

 

OS별 default value

  • linux, unix : 0
  • windows : 1
  • mac OS : 2

 

 

그렇다면, linux에서 이 값을 바꾸려면 어떻게 해야 할까요?

 

lower_case_table_names 변경 방법(centos7)

1) /etc/my.cnf.d/server.cnf 파일을 열고 [mysqld] 밑에 아래 문자열 추가(이 경로에 없다면 /etc/my.cnf 파일 확인)

lower_case_table_names=1

 

2) mariadb 재시작

# systemctl stop mariadb

# systemctl start mariadb

 

3) 적용 확인

show variables like 'lower_case_table_names';

 

 

 

* 참고사항

  • Windows환경에서 저같은 경우 C:\Program Files\MariaDB 10.4\data\my.ini 파일의 [mysqld] 밑에 lower_case_table_names를 추가해 주라는 다른 블로그 글이 있었지만 이렇게 하면 mariadb 서비스가 재시작이 되지 않았습니다.
  • 다른 블로그 글에서 C:\ProgramData\MySQL 폴더에서 수정하라고 되어 있었으나, MySQL, MariaDB 폴더 모두 존재하지 않았습니다.

 

참고 사이트

 

mariadb 10.4 대소문자 구분 설정

centos7 에서 yum install 시, lower_case_table_names = 1 선택시 query 에서의 테이블 및 대소문자 구분하지 않는다. /etc/my.cnf.d/server.cnf 에 # this is only for the mysqld standalone daemon [m..

yoursyun.tistory.com

 

 

[MariaDB - (11) ] Mysqldump 소문자, 대문자 이슈 (해결 방법)

환경 MariaDB 10.3 ( x64, windows ) Windows에서 mysqldum를 하고 linux에 DB를 넣으면 테이블명이 소문자로 들어가는 문제를 종종 본 적이 있을 것이다. 윈도우 자체의 문제인 줄 알았는데 MariaDB의 문제였다...

whitekeyboard.tistory.com

 

728x90
loading