MySQL의 테이블 이름은 대소 문자를 구분합니까?
MySQL의 테이블 이름은 대소 문자를 구분합니까?
내 Windows 개발자 컴퓨터에서 내가 가지고있는 코드는 모두 소문자로 보이는 테이블을 쿼리 할 수 있습니다. 데이터 센터의 테스트 서버에 배포하면 테이블 이름이 대문자로 시작하는 것으로 나타납니다.
우리가 사용하는 서버는 모두 우분투에 있습니다.
일반적으로 :
데이터베이스 및 테이블 이름은 Windows에서 대소 문자를 구분하지 않으며 대부분의 Unix 품종에서는 대소 문자를 구분합니다.
MySQL에서 데이터베이스는 데이터 디렉토리 내의 디렉토리에 해당합니다. 데이터베이스 내의 각 테이블은 데이터베이스 디렉토리 내의 하나 이상의 파일에 해당합니다. 결과적으로 기본 운영 체제의 대소 문자 구분은 데이터베이스 및 테이블 이름의 대소 문자 구분에 영향을줍니다.
시스템 변수를 사용하여 테이블 이름을 디스크에 저장하는 방법을 구성 할 수 있습니다 lower_case_table_names
. ( [mysqld]의 my.cnf 구성에서)
자세한 정보는 10.2.2 식별자 대소 문자 구분 섹션을 읽으십시오 .
데이터베이스 및 테이블 이름은 Windows에서 대소 문자를 구분하지 않으며 대부분의 Unix 또는 Linux에서는 대소 문자를 구분합니다.
문제를 해결하려면 lower_case_table_names를 1로 설정하십시오.
lower_case_table_names = 1
이렇게하면 테이블 작성 방법에 관계없이 모든 테이블을 소문자로 만듭니다.
MySQL의 테이블 이름은 파일 시스템 항목이므로 기본 파일 시스템 인 경우 대소 문자를 구분하지 않습니다.
lower_case_table_names
시스템 변수에 따라 다릅니다 .
show variables where Variable_name='lower_case_table_names'
이에 대한 세 가지 가능한 값이 있습니다.
0
-CREATE TABLE
또는CREATE DATABASE
명세서에 지정된 소문자 . 이름 비교는 대소 문자를 구분합니다.1
-테이블 이름은 디스크에서 소문자로 저장되며 이름 비교는 대소 문자를 구분하지 않습니다.2
-CREATE TABLE
또는CREATE DATABASE
문에 지정된 소문자이지만 MySQL은 조회시 소문자로 변환합니다. 이름 비교는 대소 문자를 구분하지 않습니다.
에서 파일 찾기
/etc/mysql/my.cnf
다음 줄을 추가하여 파일을 편집하십시오.
[mysqld]
lower_case_table_names=1
sudo /etc/init.d/mysql restart
실행
mysqladmin -u root -p variables | grep table
이 확인하는lower_case_table_names
것입니다1
지금
작동하려면이 테이블을 다시 작성해야 할 수도 있습니다.
참고 URL : https://stackoverflow.com/questions/6134006/are-table-names-in-mysql-case-sensitive
'IT' 카테고리의 다른 글
Nginx 403 오류 : [폴더]의 디렉토리 색인이 금지되어 있습니다. (0) | 2020.06.10 |
---|---|
JSON 파일에서 R로 데이터 가져 오기 (0) | 2020.06.10 |
Git에서 커밋되지 않은 변경 사항 및 git diff를 자세히 표시하는 방법 (0) | 2020.06.10 |
기존 리포지토리의 지점에서 새 GitHub 리포지토리를 생성하려면 어떻게해야합니까? (0) | 2020.06.10 |
파이썬으로 이메일을 보내는 방법? (0) | 2020.06.10 |