Loading...
MySQL 9.5 Reference Manual 9.5의 2.3.6 Windows Platform Restrictions의 한국어 번역본입니다.
아래의 경우에 피드백에서 신고해주신다면 반영하겠습니다.
감사합니다 :)
다음 제약 사항들은 Windows 플랫폼에서 MySQL을 사용할 때 적용됩니다:
Windows 32-bit 플랫폼에서는 MySQL을 포함한 단일 프로세스 내에서 기본적으로 2GB 이상의 RAM을 사용할 수 없습니다. 이는 Windows 32-bit의 물리 주소 한계가 4GB이고, Windows의 기본 설정이 가상 주소 공간을 커널(2GB)과 사용자/애플리케이션(2GB)으로 나누기 때문입니다.
일부 Windows 버전에는 커널 애플리케이션을 줄여 더 큰 애플리케이션을 사용할 수 있게 하는 부트 타임 설정이 있습니다. 또는 2GB 이상을 사용하려면 64-bit 버전의 Windows를 사용해야 합니다.
MyISAM 테이블을 사용할 때, Windows 링크 내에서 별칭을 사용하여 다른 볼륨의 데이터 파일에 링크한 뒤 다시 메인 MySQL datadir 위치로 링크 백(link back)할 수 없습니다.
이 기능은 종종 데이터와 인덱스 파일을 RAID 또는 기타 빠른 솔루션으로 이동하는 데 사용됩니다.
Windows 시스템에서는 클라이언트 연결에 사용할 수 있는 포트가 약 4,000개이며, 특정 포트에서 연결이 종료된 후 그 포트를 다시 사용할 수 있기까지 2~4분이 걸립니다. 클라이언트가 서버에 매우 높은 빈도로 연결(connect) 및 연결 해제(disconnect)하는 상황에서는, 닫힌 포트가 다시 사용 가능해지기 전에 사용 가능한 모든 포트가 소진될 수 있습니다. 이 경우 MySQL 서버는 실행 중임에도 불구하고 응답이 없는 것처럼 보일 수 있습니다. 또한 같은 머신에서 실행 중인 다른 애플리케이션이 포트를 사용할 수도 있으므로, MySQL에서 사용 가능한 포트의 수는 더 적어질 수 있습니다.
이 문제에 대한 자세한 내용은 https://support.microsoft.com/kb/196271를 참조하십시오.
DATA DIRECTORY 및 INDEX DIRECTORYCREATE TABLE 문장의 DATA DIRECTORY 절은 Section 17.6.1.2, “Creating Tables Externally”에 설명된 대로 Windows에서 InnoDB 테이블에 대해서만 지원됩니다. MyISAM 및 기타 스토리지 엔진의 경우, CREATE TABLE에 대한 DATA DIRECTORY 및 INDEX DIRECTORY 절은 realpath() 호출이 동작하지 않는 Windows 및 기타 모든 플랫폼에서 무시됩니다.
다른 세션에서 사용 중인 데이터베이스는 drop할 수 없습니다.
Windows에서는 파일 이름이 대소문자를 구분하지 않으므로, Windows에서의 MySQL 데이터베이스 및 테이블 이름 역시 대소문자를 구분하지 않습니다. 유일한 제약 사항은, 특정 문장 내에서는 데이터베이스와 테이블 이름을 동일한 대소문자로 지정해야 한다는 점입니다. Section 11.2.3, “Identifier Case Sensitivity”를 참조하십시오.
Windows에서 MySQL Server는 현재 ANSI 코드 페이지와 호환되는 디렉터리 및 파일 이름만 지원합니다. 예를 들어, 다음과 같은 일본어 디렉터리 이름은 Western 로케일(코드 페이지 1252)에서는 동작하지 않습니다:
1datadir="C:/私たちのプロジェクトのデータ"
동일한 제한은 LOAD DATA에서의 데이터 파일 경로 이름과 같이 SQL 문장에서 참조되는 디렉터리 및 파일 이름에도 적용됩니다.
\ path name separator characterWindows에서 경로 이름의 구성 요소는 \ 문자로 구분되며, 이 문자는 MySQL에서 이스케이프 문자이기도 합니다. LOAD DATA 또는 SELECT ... INTO OUTFILE를 사용하는 경우, / 문자를 사용하는 유닉스 스타일의 파일 이름을 사용하십시오:
1mysql> LOAD DATA INFILE 'C:/tmp/skr.txt' INTO TABLE skr; 2mysql> SELECT * INTO OUTFILE 'C:/tmp/skr.txt' FROM skr;
또는 \ 문자를 두 번 써야 합니다:
1mysql> LOAD DATA INFILE 'C:\\tmp\\skr.txt' INTO TABLE skr; 2mysql> SELECT * INTO OUTFILE 'C:\\tmp\\skr.txt' FROM skr;
파이프는 Windows 명령줄 프롬프트에서 안정적으로 동작하지 않습니다. 파이프에 ^Z / CHAR(24) 문자가 포함되어 있으면, Windows는 이를 파일 끝(end-of-file)을 만난 것으로 인식하고 프로그램을 중단합니다.
이는 주로 다음과 같이 바이너리 로그를 적용하려고 할 때 문제가 됩니다:
1C:\> mysqlbinlog binary_log_file | mysql --user=root
로그를 적용하는 데 문제가 발생했고 그 원인이 ^Z / CHAR(24) 문자 때문이라고 의심된다면, 다음과 같은 우회 방법을 사용할 수 있습니다:
1C:\> mysqlbinlog binary_log_file --result-file=/tmp/bin.sql 2C:\> mysql --user=root --execute "source /tmp/bin.sql"
후자의 커맨드는 바이너리 데이터를 포함할 수 있는 임의의 SQL 파일을 안정적으로 읽는 데에도 사용할 수 있습니다.
2.3.5 Windows Postinstallation Procedures
2.4 Installing MySQL on macOS