[MariaDB] 대, 소문자 구분 없애기

    [MariaDB] 대, 소문자 구분 없애기

     

     

     

      MariaDB 설치 시, 주의해야 할 점

     MariaDB는 정상 작동된다. 그러나 서버에서 SQL이 제대로 실행되지 않는 경우가 발생된다.

    MariaDB는 정상 실행되지만, Spring에서 SQL의 ERROR가 표현이 된다.

    Error querying database.  Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table [테이블 명]

     

    만약 서버의 log나 catalina에서 위와 같은 오류가 발생되었다면,  이는 TABLE의 대, 소문자의 불명확으로 발생되는 에러이다.

     

     

    만약 위와 같은 오류가 동일한지를 확인하고 싶다면, 아래의 명령어를 MariaDB에서 실행해 보면 알 수 있다.

     

     

    show variables like 'lower_case_table_names';

    1은 대, 소문자 구분 없음. 0은 대, 소문자 구분 이다.

    Value 값 결과
    0 대, 소문자 구분한다.
    1 대, 소문자 구분을 하지 않는다.

    위의 표를 보아서 상태를 확인하면 된다.

     

     

      대, 소문자 구분 없애는 방법

     

     보통 아무런 설정 없이 MariaDB를 설치했다면 /etc에 my.cnf라는 파일이 있을 것이다.

    혹은 '/etc/my.cnf.d/'에 있을 수도 있으니 찾아보도록 하자.

     

    my.cnf가 '/etc'에 있다면,

    vi /etc/my.cnf 명령어를 통해 파일을 열어보도록 한다.

    처음 만질 경우, client-server만 존재한다.

    처음 만지게 된다면, client-server만 존재한다. 그렇다면 빨간색 네모 부분만 추가하도록 하자.

    이 전에 수정한 적이 있고 [mysqld]가 이미 있다면, 두 번째만 수정하도록 한다. 만약 [mysqld]가 복수개라면 mariadb 실행에 에러가 생긴다.

     

    [mysqld]
    
    lower_case_table_names=1

    위의 문장을 추가했다면, 더 이상 수정할 작업은 없다.

    esc를 누른후 ':wq' 입력하여 저장 후 종료를 하도록 하자.

     

    그 후 mariaDB를 종료 후 재실행하면 된다.

     

    명령어 실행 결과
    systemctl stop mariadb MariaDB 종료하기
    systemctl start mariadb MariaDB 실행하기
    systemctl restart mariadb MaridDB 재실행하기

    위의 명령어를 통해 MariaDB가 종료되지 않는다면 강제 종료 방법이 매우 빠르다.

    killall mysqld

     

    재 실행 후 제일 처음 명령어를 통해서 Value의 변경을 확인하도록 하자

    1이 되었다면 끝.

     

      마무리

     서버를 설치하면서, MariaDB 설정에 대해 오늘 생각이 나서 적게 되었다.

    모두 파이팅

     

    반응형

    댓글

    Designed by JB FACTORY