27.10.6 Windows 플랫폼의 제한
다음과 같은 제한이 Windows 플랫폼에서 MySQL을 사용하는 경우에 적용됩니다.
프로세스 메모리
Windows 32 비트 플랫폼에서는 기본적으로 MySQL 등의 단일 프로세스 내에서 2G 바이트 이상의 RAM을 사용할 수 없습니다. 이것은 Windows 32 비트에서 물리적 주소 제한이 4G 바이트이며 Windows에서 기본적으로 커널 (2G 바이트) 및 사용자 / 애플리케이션 (2G 바이트)와 가상 주소 공간을 분할하는 것입니다.
Windows의 일부 버전에는 커널 애플리케이션을 줄임으로써 더 큰 애플리케이션을위한 부팅시 설정이 있습니다. 또는 2G 바이트 이상을 사용하려면 64 비트 버전의 Windows를 사용합니다.
파일 시스템 별칭
MyISAM
테이블의 사용시에는 Windows에서 별칭을 사용하여 다른 볼륨의 데이터 파일에 링크하고있어에서 메인 MySQLdatadir
위치로 돌아에는 연결할 수 없습니다.이 기능은 종종
datadir
옵션으로 구성된 기본 데이터 디렉토리에 기본.frm
파일을 유지하면서 데이터 파일과 인덱스 파일을 RAID 또는 기타 고속 솔루션으로 이동하는 데 사용됩니다.포트 제한
Windows 시스템에서 클라이언트 연결 포트가 약 4,000 있으며, 1 개의 포트 연결이 닫히면 그 포트를 다시 사용할 수있을 때까지 2-4 분 정도 걸립니다. 클라이언트가 서버와의 연결 및 분리를 높은 빈도로 반복 환경에서 닫힌 포트를 다시 사용할 수있게되기 전에 사용 가능한 포트가 사용되어 버릴 수 있습니다. 이렇게되면 MySQL Server가 작동하는 동안에도 반응하지 않는 것 같습니다. 포트는 시스템에서 실행되는 다른 응용 프로그램에서 사용되는 경우가 있으며,이 때 MySQL에 사용 가능한 포트 수는 적습니다.
이 문제의 자세한 내용은 http://support.microsoft.com/default.aspx?scid=kb;en-us;196271 를 참조하십시오.
DATA DIRECTORY
및INDEX DIRECTORY
CREATE TABLE
의DATA DIRECTORY
옵션은 섹션 14.5.4 "테이블 공간의 위치 지정" 에 설명 된대로 Windows에서는InnoDB
테이블에 대해서만 지원됩니다.MyISAM
및 기타 스토리지 엔진의 경우CREATE TABLE
의DATA DIRECTORY
및INDEX DIRECTORY
옵션은 Windows 및 비 기능적realpath()
호출을 사용하는 다른 플랫폼에서는 무시됩니다.DROP DATABASE
다른 세션에서 사용되는 데이터베이스는 삭제할 수 없습니다.
대문자와 소문자를 구별하지 않는 이름
Windows에서는 파일 이름의 대소 문자는 구별되지 않기 때문에, MySQL 데이터베이스와 테이블 이름도 Windows에서는 대문자와 소문자는 구별되지 않습니다. 유일한 제한은 특정 문 전체에서 대소 문자를 변경하지 않고 데이터베이스와 테이블 이름을 지정해야한다는 것뿐입니다. 섹션 9.2 "식별자의 대문자와 소문자" 을 참조하십시오.
디렉토리 및 파일 이름
Windows에서 MySQL Server는 현재 ANSI 코드 페이지와 호환 디렉토리와 파일 이름 만 지원합니다. 예를 들어, 다음과 같이 일본어의 디렉토리 이름은 서양 로케일 (1252)에서는 작동하지 않습니다.
datadir="C:/私たちのプロジェクトのデータ"
같은 제한은
LOAD DATA INFILE
데이터 파일 경로 이름 등 SQL 문에서 참조되는 디렉토리와 파일 이름에도 적용됩니다."
\
"(경로 구분자)Windows에서 경로 이름 구성 요소는 "
\
"문자로 구분되지만 이것은 MySQL의 이스케이프 문자이기도합니다.LOAD DATA INFILE
또는SELECT ... INTO OUTFILE
을 사용하는 경우는 Unix 스타일의 파일 이름과 "/
"문자를 함께 사용합니다.mysql>
LOAD DATA INFILE 'C:/tmp/skr.txt' INTO TABLE skr;
mysql>SELECT * INTO OUTFILE 'C:/tmp/skr.txt' FROM skr;
또는 "
\
"문자를 2 번해야합니다.mysql>
LOAD DATA INFILE 'C:\\tmp\\skr.txt' INTO TABLE skr;
mysql>SELECT * INTO OUTFILE 'C:\\tmp\\skr.txt' FROM skr;
파이프 문제
파이프는 Windows의 명령 프롬프트에서이 안정적으로 작동하지 않습니다. 파이프에
^Z
/CHAR(24)
가 포함되어 있으면 Windows는 파일의 마지막이라고 착각하고 프로그램을 중지합니다.이것은 주로 다음과 같이 바이너리 로그를 적용 할 때 문제가됩니다.
C:\>
mysqlbinlog
binary_log_file
| mysql --user=root로그를 적용 할 때 문제가 발생하고 그 원인이
^Z
/CHAR(24)
문자에 의한 것이라고 생각되면 다음 해결 방법을 사용할 수 있습니다.C:\>
mysqlbinlog
C:\>binary_log_file
--result-file=/tmp/bin.sqlmysql --user=root --execute "source /tmp/bin.sql"
두 번째 명령은 바이너리 데이터를 포함한 SQL 파일을 보장 읽는 데 사용할 수도 있습니다.