본문 바로가기
MYSQL

MYSQL 대소문자 구분 안하기 적용 - mysqld.cnf 설정

by SAMSUNG CLOUD-OKY 2021. 5. 20.
반응형

 

 

       - 다음과 같은 명령을 실행하고 확인 하였을 경우
         lower_case_table_names의 값이 0인지 1인지 2인지를 확인해야 한다.
         : show variables like 'lower_case_table_names';
         <<<<<<<<<<<<<<<<<<<<<<<<<<<<<
         0일 경우 : 대소문자 구분함
         1일 경우 : 대소문자 구분안함
         >>>>>>>>>>>>>>>>>>>>>>>>>>>>>

       - vi로 my.cnf 파일을 보도록 하자
       - sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf

         : [mysqld]
         : lower_case_table_names = 1

       - mysqld 서비스 재시작
         : sudo systemctl restart mysql

 

 

 

[mysqld]
pid-file        = /var/run/mysqld/mysqld.pid
socket          = /var/run/mysqld/mysqld.sock
datadir         = /var/lib/mysql
log-error       = /var/log/mysql/error.log

[client]

default-character-set=utf8


[mysql]

default-character-set=utf8


[mysqld]
default-time-zone='+9:00'
init_connect = SET collation_connection = utf8_general_ci
init_connect = SET NAMES utf8
character-set-server = utf8
collation-server = utf8_general_ci
lower_case_table_names = 1


[mysqldump]
default-character-set=utf8

# By default we only accept connections from localhost
#bind-address   = 127.0.0.1
bind-address    = 0.0.0.0
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0

 

 

 

 

 

=========================================

 

 

MySQL로 간혹가다 작업 도중 분명히 테이블이 존재하는데

 

 Table '테이블명' doesn't exist

 

라는 문구가 나올때가 존재한다.

 

 

 

 

 

 

윈도우에서는 대부분 대소문자 구분없이 설치가 되지만, 

간혹가다가 리눅스용 MySQL은 대소문자 구분하는 형식으로 설치가 되있는 경우가 있다 .

 

show variables like 'lower_case_table_names';

 

다음과 같은 명령을 실행하고 확인 하였을 경우

 

lower_case_table_names의 값이 0인지 1인지 2인지를 확인해야 한다.

 

 

 

 

본인의 테스트 서버는 0이어서 오류가 났었던 것이다.

 

보통 2는본적이 없어서 모르겠고 0 또는 1인것을 보았었다.

 

0일 경우 : 대소문자 구분함

1일 경우 : 대소문자 구분안함

 

본인은 대소문자 구분을 하지 않기위하여  lower_case_table_names의 값을 1로 설정을 해주고자 한다.

 

MySQL의 my.cnf 파일을 건드려 주어야 하는데

보통은 /etc/my.cnf에 존재한다.

 

vi로 my.cnf 파일을 보도록 하자

 

 

 

 

접속하다보면 [mysqld] << 이영역이 있을텐데

 

 

 

 

영역의 맨밑에 

lower_case_table_names = 1

 

라고 설정을 해주도록 하자

 

 

 

비교를 하기 위해 한줄 내려서 작성하였다.

붙여서 상관은 없다

 

위치는 [mysqld] < 밑에 나열된 명령어들 그리고 다음 영역의 [] 가 나오기 전에만 작성해 주면 

되겠다.

 

저장하고 나온다음에 mysqld 서비스를 재시작 해주었다.

 

 

 

 

쿼리에서 다시 명령어를 실행하여 대소문자 구분값이 변경되었는지 확인해보자

 

 

 

본인은 1로 잘 변경이 되었다.

 

한번 다시 아까 오류난 쿼리를 재실행 해보도록 하겠다.

 

 

 

정상적으로 소문자 테이블인대 대문자로 명령어를 실행해도 잘나온다

유의하도록 하자...

 

 

 

 

 

 

 

 

 

 

 

 

 

 



출처: https://roqkffhwk.tistory.com/91 [야근싫어하는 개발자]

 

 

 

 

 

 

 

 

 

 

 

 

 

 

반응형

'MYSQL' 카테고리의 다른 글

MySQL Dump / Import 방법  (0) 2021.05.20
UBUNTU16.04에서 MYSQL 5.7 설치하기, 튜닝, 삭제하기  (0) 2021.01.09

댓글