Mysql를 운영하다 보면 Table명을 설정할 때 대소문자에 대한 고민을 하게 됩니다.
기본적으로 Windows는 대소문자 구분을 하지 않는 게 기본 설정이지만
리눅스는 테이블 name조차도 파일로 관리하기 때문에 대소문자를 구분하는 게 기본 설정입니다.
Could not open JDBC Connection for transaction; nested exception is org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory
windows 환경에서 개발하고 리눅스에서 운영한다거나 하는 경우 이 대소문자 구분 때문에
테이블 인식이 안 되는 경우가 있는데 간단하게 대소문자 구분 설정으로 해결이 가능합니다.
mysql에 로그인 한 뒤에 아래와 같이 sql문을 실행합니다.
show variables like 'lower%';
조회된 테이블에서 두 번째 항목인 lower_case_table_names가 바로
테이블 대소문자 구분에 대한 설정값입니다.
이 부분이 1로 되면 대소문자 구분을 안 하고 0이면 대소문자 구분을 한다는 의미입니다.
set lower_case_table_names=1;
자 그럼 sql문을 통해 세팅을 해보겠습니다.
위와 같은 에러 문구를 보이면서 설정을 할 수가 없습니다.
왜냐하면 해당 설정값은 read만 가능한 값이기 때문입니다.
그럼 설정을 할 수가 없을까..?
아닙니다 my.cnf 파일에서 설정이 가능합니다.
vim /etc/my.cnf
위 파일을 열어주고
[mysqld] 아래쪽에 lower_case_table_names=1을 입력한 뒤에
mysql을 restart 해주면 설정이 된 것을 확인할 수 있습니다.
여기서 주의할 점은 반드시 [mysqld] 구분 아래쪽에 적어주어야 설정이 됩니다.
'서버 > Mysql' 카테고리의 다른 글
Mysql backup (0) | 2022.01.06 |
---|---|
Mysql PHP 한글 깨짐 해결 (0) | 2022.01.03 |
Mysql 특정 문자 포함한 테이블 조회 (0) | 2021.12.14 |
Mysql workbench ssl connection error 해결 (2) | 2021.11.24 |
mysql_safe Starting mysqld daemon with database from /var/lib/mysql error 해결 (0) | 2021.11.15 |
댓글