Loading...
MySQL 9.5 Reference Manual 9.5의 2.8.7 MySQL Source-Configuration Options의 한국어 번역본입니다.
아래의 경우에 피드백에서 신고해주신다면 반영하겠습니다.
감사합니다 :)
CMake 프로그램은 MySQL source 배포본을 어떻게 구성할지에 대해 상당한 수준의 제어를 제공합니다. 일반적으로는 CMake 명령줄의 옵션을 사용해서 이를 수행합니다. CMake에서 지원하는 옵션에 대한 정보는 최상위 source 디렉터리에서 다음 명령 중 하나를 실행하면 확인할 수 있습니다:
1$> cmake . -LH 2 3$> ccmake .
또한 특정 환경 변수를 사용하여 CMake에 영향을 줄 수도 있습니다. Section 6.9, “Environment Variables”를 참조하십시오.
불리언 옵션의 경우, 값을 1 또는 ON으로 지정하면 옵션을 활성화하고, 0 또는 OFF로 지정하면 비활성화합니다.
많은 옵션은 서버 시작 시점에 재정의 가능한 컴파일 타임 기본값을 설정합니다. 예를 들어, 기본 설치 base 디렉터리 위치, TCP/IP 포트 번호, Unix 소켓 파일을 설정하는 CMAKE_INSTALL_PREFIX, MYSQL_TCP_PORT, MYSQL_UNIX_ADDR 옵션은 서버 시작 시점에 mysqld의 --basedir, --port, --socket 옵션으로 변경할 수 있습니다. 해당되는 경우, 구성 옵션 설명에는 대응하는 mysqld 시작 옵션이 표시됩니다.
다음 섹션에서는 CMake 옵션에 대한 추가 정보를 제공합니다.
다음 테이블은 사용 가능한 CMake 옵션을 보여줍니다. Default 열에서 PREFIX는 설치 base 디렉터리를 지정하는 CMAKE_INSTALL_PREFIX 옵션의 값을 의미합니다. 이 값은 여러 설치 하위 디렉터리에 대한 부모 위치로 사용됩니다.
Table 2.15 MySQL Source-Configuration Option Reference
(CMake)
| Formats | Description | Default |
|---|---|---|
ADD_GDB_INDEX | 바이너리에 .gdb_index 섹션 생성 활성화 여부 | |
BUILD_CONFIG | 공식 릴리스와 동일한 빌드 옵션 사용 | |
BUNDLE_RUNTIME_LIBRARIES | Windows용 서버 MSI 및 Zip 패키지에 런타임 라이브러리 번들 여부 | OFF |
CMAKE_BUILD_TYPE | 생성할 빌드 타입 | RelWithDebInfo |
CMAKE_CXX_FLAGS | C++ 컴파일러용 플래그 | |
CMAKE_C_FLAGS | C 컴파일러용 플래그 | |
CMAKE_INSTALL_PREFIX | 설치 base 디렉터리 | /usr/local/mysql |
COMPILATION_COMMENT | 컴파일 환경에 대한 코멘트 | |
COMPILATION_COMMENT_SERVER | mysqld에서 사용할 컴파일 환경에 대한 코멘트 | |
COMPRESS_DEBUG_SECTIONS | 바이너리 실행 파일의 디버그 섹션 압축 여부 | OFF |
CPACK_MONOLITHIC_INSTALL | 패키지 빌드 결과가 단일 파일인지 여부 | OFF |
DEFAULT_CHARSET | 기본 서버 캐릭터 세트 | utf8mb4 |
DEFAULT_COLLATION | 기본 서버 콜레이션 | utf8mb4_0900_ai_ci |
DISABLE_PERFSCHEMA | 모든 DISABLE_PSI_* 빌드 옵션 활성화 | OFF |
DISABLE_PSI_COND | Performance Schema condition 계측 제외 | OFF |
DISABLE_PSI_DATA_LOCK | performance schema data lock 계측 제외 | OFF |
DISABLE_PSI_ERROR | performance schema 서버 에러 계측 제외 | OFF |
DISABLE_PSI_FILE | Performance Schema file 계측 제외 | OFF |
DISABLE_PSI_IDLE | Performance Schema idle 계측 제외 | OFF |
DISABLE_PSI_MEMORY | Performance Schema memory 계측 제외 | OFF |
DISABLE_PSI_METADATA | Performance Schema metadata 계측 제외 | OFF |
DISABLE_PSI_MUTEX | Performance Schema mutex 계측 제외 | OFF |
DISABLE_PSI_PS | performance schema prepared statements 제외 | OFF |
DISABLE_PSI_RWLOCK | Performance Schema rwlock 계측 제외 | OFF |
DISABLE_PSI_SOCKET | Performance Schema socket 계측 제외 | OFF |
DISABLE_PSI_SP | Performance Schema stored program 계측 제외 | OFF |
DISABLE_PSI_STAGE | Performance Schema stage 계측 제외 | OFF |
DISABLE_PSI_STATEMENT | Performance Schema statement 계측 제외 | OFF |
DISABLE_PSI_STATEMENT_DIGEST | Performance Schema statements_digest 계측 제외 | OFF |
DISABLE_PSI_TABLE | Performance Schema table 계측 제외 | OFF |
DISABLE_PSI_THREAD | performance schema thread 계측 제외 | OFF |
DISABLE_PSI_TRANSACTION | performance schema transaction 계측 제외 | OFF |
ENABLED_LOCAL_INFILE | LOAD DATA에서 LOCAL을 활성화할지 여부 | OFF |
ENABLED_PROFILING | 쿼리 프로파일링 코드 활성화 여부 | ON |
ENABLE_EXPERIMENTAL_SYSVARS | experimental InnoDB 시스템 변수 활성화 여부 | OFF |
ENABLE_GCOV | gcov 지원 포함 여부 | |
ENABLE_GPROF | gprof 활성화 (최적화된 Linux 빌드만) | OFF |
FORCE_COLORED_OUTPUT | 컴파일러 출력에 컬러 적용 여부 | OFF |
FORCE_INSOURCE_BUILD | 인소스 빌드 강제 여부 | OFF |
FORCE_UNSUPPORTED_COMPILER | 지원되지 않는 컴파일러 허용 여부 | OFF |
FPROFILE_GENERATE | 프로파일 가이드 최적화 데이터 생성 여부 | OFF |
FPROFILE_USE | 프로파일 가이드 최적화 데이터 사용 여부 | OFF |
HAVE_PSI_MEMORY_INTERFACE | over-aligned 타입의 동적 스토리지에 사용되는 메모리 할당 함수용 performance schema 메모리 트레이싱 모듈 활성화 | OFF |
IGNORE_AIO_CHECK | -DBUILD_CONFIG=mysql_release 사용 시 libaio 체크 무시 | OFF |
INSTALL_BINDIR | 사용자 실행 파일 디렉터리 | PREFIX/bin |
INSTALL_DOCDIR | 문서 디렉터리 | PREFIX/docs |
INSTALL_DOCREADMEDIR | README 파일 디렉터리 | PREFIX |
INSTALL_INCLUDEDIR | 헤더 파일 디렉터리 | PREFIX/include |
INSTALL_INFODIR | Info 파일 디렉터리 | PREFIX/docs |
INSTALL_LAYOUT | 미리 정의된 설치 레이아웃 선택 | STANDALONE |
INSTALL_LIBDIR | 라이브러리 파일 디렉터리 | PREFIX/lib |
INSTALL_MANDIR | 매뉴얼 페이지 디렉터리 | PREFIX/man |
INSTALL_MYSQLSHAREDIR | 공유 데이터 디렉터리 | PREFIX/share |
INSTALL_MYSQLTESTDIR | mysql-test 디렉터리 | PREFIX/mysql-test |
INSTALL_PKGCONFIGDIR | mysqlclient.pc pkg-config 파일용 디렉터리 | INSTALL_LIBDIR/pkgconfig |
INSTALL_PLUGINDIR | 플러그인 디렉터리 | PREFIX/lib/plugin |
INSTALL_PRIV_LIBDIR | 설치 전용(private) 라이브러리 디렉터리 | |
INSTALL_SBINDIR | 서버 실행 파일 디렉터리 | PREFIX/bin |
INSTALL_SECURE_FILE_PRIVDIR | secure_file_priv 기본값 | platform specific |
INSTALL_SHAREDIR | aclocal/mysql.m4 설치 디렉터리 | PREFIX/share |
INSTALL_STATIC_LIBRARIES | 정적 라이브러리 설치 여부 | ON |
INSTALL_SUPPORTFILESDIR | 추가 지원 파일 디렉터리 | PREFIX/support-files |
LINK_RANDOMIZE | mysqld 바이너리 내 심볼 순서 랜덤화 여부 | OFF |
LINK_RANDOMIZE_SEED | LINK_RANDOMIZE 옵션용 seed 값 | mysql |
MAX_INDEXES | 테이블당 최대 인덱스 수 | 64 |
MSVC_CPPCHECK | MSVC 코드 분석 활성화 | ON |
MUTEX_TYPE | InnoDB mutex 타입 | event |
MYSQLX_TCP_PORT | X Plugin이 사용하는 TCP/IP 포트 번호 | 33060 |
MYSQLX_UNIX_ADDR | X Plugin이 사용하는 Unix 소켓 파일 | /tmp/mysqlx.sock |
MYSQL_DATADIR | 데이터 디렉터리 | |
MYSQL_MAINTAINER_MODE | MySQL 유지보수자 전용 개발 환경 활성화 여부 | OFF |
MYSQL_PROJECT_NAME | Windows/macOS 프로젝트 이름 | MySQL |
MYSQL_TCP_PORT | TCP/IP 포트 번호 | 3306 |
MYSQL_UNIX_ADDR | Unix 소켓 파일 | /tmp/mysql.sock |
NDB_UTILS_LINK_DYNAMIC | NDB 툴을 ndbclient에 동적 링크하도록 지정 | |
ODBC_INCLUDES | ODBC include 디렉터리 | |
ODBC_LIB_DIR | ODBC 라이브러리 디렉터리 | |
OPTIMIZER_TRACE | 옵티마이저 트레이싱 지원 여부 | |
OPTIMIZE_SANITIZER_BUILDS | sanitizer 빌드 최적화 여부 | ON |
REPRODUCIBLE_BUILD | 빌드 위치와 시간에 독립적인 빌드 결과를 생성하기 위한 추가 처리 여부 | |
SHOW_SUPPRESSED_COMPILER_WARNING | 억제된 컴파일러 경고를 표시하되 -Werror로 실패하지 않도록 할지 여부 | OFF |
SYSCONFDIR | 옵션 파일 디렉터리 | |
SYSTEMD_PID_DIR | systemd 하에서 PID 파일용 디렉터리 | /var/run/mysqld |
SYSTEMD_SERVICE_NAME | systemd 하에서 MySQL 서비스 이름 | mysqld |
TMPDIR | tmpdir 기본값 | |
WIN_DEBUG_NO_INLINE | 함수 인라이닝 비활성화 여부 | OFF |
WITHOUT_SERVER | 서버를 빌드하지 않음; 내부용 | OFF |
WITHOUT_xxx_STORAGE_ENGINE | 빌드에서 스토리지 엔진 xxx 제외 | |
WITH_ANT | GCS Java wrapper 빌드용 Ant 경로 | |
WITH_ASAN | AddressSanitizer 활성화 | OFF |
WITH_ASAN_SCOPE | AddressSanitizer -fsanitize-address-use-after-scope Clang 플래그 활성화 | OFF |
WITH_AUTHENTICATION_CLIENT_PLUGINS | 대응되는 서버 인증 플러그인이 빌드되면 자동 활성화 | |
WITH_AUTHENTICATION_LDAP | LDAP 인증 플러그인을 빌드할 수 없는 경우 에러를 보고할지 여부 | OFF |
WITH_AUTHENTICATION_PAM | PAM 인증 플러그인 빌드 | OFF |
WITH_AWS_SDK | Amazon Web Services software development kit 위치 | |
WITH_BUILD_ID | Linux 시스템에서 고유 빌드 ID 생성 | ON |
WITH_CLASSPATH | MySQL Cluster Connector for Java 빌드 시 사용할 classpath. 기본값은 빈 문자열. | `` |
WITH_CLIENT_PROTOCOL_TRACING | 클라이언트 측 프로토콜 트레이싱 프레임워크 빌드 | ON |
WITH_CURL | curl 라이브러리 위치 | |
WITH_DEBUG | 디버깅 지원 포함 여부 | OFF |
WITH_DEFAULT_COMPILER_OPTIONS | 기본 컴파일러 옵션 사용 여부 | ON |
WITH_DEVELOPER_ENTITLEMENTS | 예상치 못한 서버 중지 시 코어 덤프 생성을 위해 macOS에서 모든 실행 파일에 'get-task-allow' entitlement 추가 여부 | OFF |
WITH_EDITLINE | 사용할 libedit/editline 라이브러리 | bundled |
WITH_ERROR_INSERT | NDB 스토리지 엔진에서 에러 인젝션 활성화. 프로덕션 바이너리 빌드에는 사용 금지. | OFF |
WITH_ICU | ICU 지원 유형 | bundled |
WITH_INNODB_EXTRA_DEBUG | InnoDB용 추가 디버깅 지원 포함 여부 | OFF |
WITH_JEMALLOC | -ljemalloc로 링크할지 여부 | OFF |
WITH_LD | LLVM lld 또는 mold 링커 사용 여부 | `` |
WITH_LIBEVENT | 사용할 libevent 라이브러리 | bundled |
WITH_LIBWRAP | libwrap (TCP wrappers) 지원 포함 여부 | OFF |
WITH_LOCK_ORDER | LOCK_ORDER 툴링 활성화 여부 | OFF |
WITH_LOG_DIAGNOSTIC | 진단 로깅 활성화; 내부용 | OFF |
WITH_LSAN | AddressSanitizer 없이 LeakSanitizer 실행 여부 | OFF |
WITH_LTO | 링크 타임 최적화기 활성화 | OFF |
WITH_LZ4 | LZ4 라이브러리 지원 유형 | bundled |
WITH_MECAB | MeCab 컴파일 | |
WITH_MSAN | MemorySanitizer 활성화 | OFF |
WITH_MSCRT_DEBUG | Visual Studio CRT 메모리 릭 트레이싱 활성화 | OFF |
WITH_MYSQLX | X Protocol 비활성화 여부 | ON |
WITH_NDB | NDB 스토리지 엔진 및 모든 NDB 프로그램을 포함한 MySQL NDB Cluster 빌드 | OFF |
WITH_NDBAPI_EXAMPLES | API 예제 프로그램 빌드 | OFF |
WITH_NDBCLUSTER | NDB 8.0.30 및 이전: NDB 스토리지 엔진 빌드. NDB 8.0.31 및 이후: deprecated; 대신 WITH_NDB 사용 | OFF |
WITH_NDBCLUSTER_STORAGE_ENGINE | NDB 8.0.31 이전: 내부용. NDB 8.0.31 이후: NDBCLUSTER 스토리지 엔진 포함 여부만 전환 | ON |
WITH_NDBMTD | 멀티스레드 데이터 노드 바이너리 빌드 | ON |
WITH_NDB_DEBUG | 테스트 또는 트러블슈팅용 디버그 빌드 생성 | OFF |
WITH_NDB_JAVA | Java 및 ClusterJ 지원 빌드 활성화. 기본적으로 활성화. MySQL Cluster에서만 지원. | ON |
WITH_NDB_PORT | 이 옵션으로 빌드된 관리 서버가 사용하는 기본 포트. 옵션을 사용하지 않으면 기본 포트는 1186. | [none] |
WITH_NDB_TEST | NDB API 테스트 프로그램 포함 | OFF |
WITH_NDB_TLS_SEARCH_PATH | NDB 프로그램이 TLS 인증서 및 키 파일을 검색할 때 사용하는 기본 경로 | $HOME/ndb-tls |
WITH_NUMA | NUMA 메모리 할당 정책 설정 | |
WITH_PACKAGE_FLAGS | RPM/DEB 패키지에서 일반적으로 사용하는 플래그를 해당 플랫폼의 단독 빌드에도 추가할지 여부 | |
WITH_PROTOBUF | 사용할 Protocol Buffers 패키지 | bundled |
WITH_RAPID | rapid development cycle 플러그인 빌드 여부 | ON |
WITH_RAPIDJSON | RapidJSON 지원 유형 | bundled |
WITH_ROUTER | MySQL Router 빌드 여부 | ON |
WITH_SASL | 내부용 | |
WITH_SHOW_PARSE_TREE | SHOW PARSE_TREE 디버깅 스테이트먼트 지원 | |
WITH_SSL | SSL 지원 유형 | system |
WITH_SYSTEMD | systemd support 파일 설치 활성화 | OFF |
WITH_SYSTEMD_DEBUG | 추가 systemd 디버그 정보 활성화 | OFF |
WITH_SYSTEM_LIBS | 명시적으로 설정되지 않은 라이브러리 옵션에 대해 system 값을 설정 | OFF |
WITH_TCMALLOC | -ltcmalloc로 링크할지 여부. BUNDLED는 Linux에서만 지원 | OFF |
WITH_TEST_TRACE_PLUGIN | 테스트 프로토콜 트레이스 플러그인 빌드 | OFF |
WITH_TSAN | ThreadSanitizer 활성화 | OFF |
WITH_UBSAN | Undefined Behavior Sanitizer 활성화 | OFF |
WITH_UNIT_TESTS | MySQL을 유닛 테스트와 함께 컴파일 | ON |
WITH_UNIXODBC | unixODBC 지원 활성화 | OFF |
WITH_VALGRIND | Valgrind 헤더 파일 컴파일 여부 | OFF |
WITH_WIN_JEMALLOC | jemalloc.dll이 있는 디렉터리 경로 | |
WITH_ZLIB | zlib 지원 유형 | bundled |
WITH_ZSTD | zstd 지원 유형 | bundled |
WITH_xxx_STORAGE_ENGINE | 스토리지 엔진 xxx를 서버에 정적 링크하여 컴파일 |
| Formats | Description | Default |
|---|
이 옵션은 Oracle이 공식 MySQL 바이너리 배포본을 생성할 때 사용하는 것과 동일한 빌드 옵션으로 소스 배포본을 구성합니다.
Linux 시스템에서 고유한 빌드 ID를 생성하며, 이는 build_id 시스템 변수의 값으로 사용되고, 시작 시 MySQL 서버 로그에 기록됩니다. 이 기능을 비활성화하려면 옵션을 OFF로 설정합니다.
이 옵션은 Linux 이외의 플랫폼에서는 효과가 없습니다.
Windows용 서버 MSI 및 Zip 패키지에 런타임 라이브러리를 번들할지 여부를 지정합니다.
생성할 빌드 타입:
RelWithDebInfo: 최적화를 활성화하고 디버깅 정보를 생성합니다. 기본 MySQL 빌드 타입입니다.
Release: 최적화를 활성화하지만 빌드 크기를 줄이기 위해 디버깅 정보를 생략합니다.
Debug: 최적화를 비활성화하고 디버깅 정보를 생성합니다. 이 빌드 타입은 WITH_DEBUG 옵션이 활성화된 경우에도 사용됩니다. 즉, -DWITH_DEBUG=1은 -DCMAKE_BUILD_TYPE=Debug와 동일한 효과를 갖습니다.
옵션 값 None 및 MinSizeRel은 지원되지 않습니다.
이 옵션은 make package 작업이 여러 개의 설치 패키지 파일을 생성할지, 또는 단일 파일을 생성할지에 영향을 줍니다. 비활성화된 경우, 이 작업은 여러 개의 설치 패키지 파일을 생성하며, 전체 MySQL 설치의 일부만 설치하고자 할 때 유용할 수 있습니다. 활성화된 경우, 모든 항목을 설치하기 위한 단일 파일을 생성합니다.
인소스 빌드를 강제할지 여부를 정의합니다. 아웃오브소스 빌드를 권장하는데, 이는 동일한 소스에서 여러 빌드를 허용하며, 빌드 디렉터리를 제거하는 방식으로 빠르게 정리할 수 있기 때문입니다. 인소스 빌드를 강제하려면, -DFORCE_INSOURCE_BUILD=ON을 사용하여 CMake를 호출합니다.
명령줄에서 컴파일할 때 gcc 및 clang에 대한 컬러 컴파일러 출력을 활성화할지 여부를 정의합니다. 기본값은 OFF입니다.
CMAKE_INSTALL_PREFIX 옵션은 설치 base 디렉터리를 나타냅니다. 컴포넌트 위치를 나타내는 INSTALL_xxx 형식의 다른 옵션은 이 prefix를 기준으로 해석되며, 그 값은 상대 경로 이름입니다. 값에 prefix를 포함해서는 안 됩니다.
설치 base 디렉터리입니다.
이 값은 서버 시작 시 --basedir 옵션을 사용하여 설정할 수 있습니다.
사용자 프로그램을 설치할 위치입니다.
문서를 설치할 위치입니다.
README 파일을 설치할 위치입니다.
헤더 파일을 설치할 위치입니다.
Info 파일을 설치할 위치입니다.
미리 정의된 설치 레이아웃을 선택합니다:
STANDALONE: .tar.gz 및 .zip 패키지에서 사용하는 레이아웃과 동일합니다. 기본값입니다.
RPM: RPM 패키지와 유사한 레이아웃입니다.
SVR4: Solaris 패키지 레이아웃입니다.
DEB: DEB 패키지 레이아웃 (experimental)입니다.
미리 정의된 레이아웃을 선택하되, 다른 옵션을 지정하여 개별 컴포넌트 설치 위치를 수정할 수 있습니다. 예:
1cmake . -DINSTALL_LAYOUT=SVR4 -DMYSQL_DATADIR=/var/mysql/data
INSTALL_LAYOUT 값은 secure_file_priv 시스템 변수의 기본값을 결정합니다. 이 변수의 설명은 Section 7.1.8, “Server System Variables”를 참조하십시오.
라이브러리 파일을 설치할 위치입니다.
매뉴얼 페이지를 설치할 위치입니다.
공유 데이터 파일을 설치할 위치입니다.
mysql-test 디렉터리를 설치할 위치입니다. 이 디렉터리 설치를 생략하려면 옵션을 명시적으로 empty 값으로 설정하십시오 (-DINSTALL_MYSQLTESTDIR=).
pkg-config에서 사용할 mysqlclient.pc 파일을 설치할 디렉터리입니다. 기본값은 INSTALL_LIBDIR/pkgconfig이며, INSTALL_LIBDIR가 /mysql로 끝나는 경우 해당 suffix는 먼저 제거됩니다.
플러그인 디렉터리 위치입니다.
이 값은 서버 시작 시 --plugin_dir 옵션으로 설정할 수 있습니다.
동적 라이브러리 디렉터리 위치입니다.
기본 위치.
RPM 빌드의 경우 /usr/lib64/mysql/private/, DEB의 경우 /usr/lib/mysql/private/, TAR의 경우 lib/private/입니다.
Protobuf.
이 위치는 private 위치이므로, 로더(Linux의 ld-linux.so 등)가 도움 없이 libprotobuf.so 파일을 찾지 못할 수 있습니다. 로더를 안내하기 위해, RPATH=$ORIGIN/../$INSTALL_PRIV_LIBDIR가 mysqld 및 mysqlxtest에 추가됩니다. 이는 대부분의 경우에 동작하지만, Resource Group 기능을 사용하는 경우 mysqld가 setsuid 상태가 되며, 로더는 $ORIGIN을 포함하는 RPATH를 무시합니다. 이를 해결하기 위해, target 목적지가 알려져 있는 DEB 및 RPM 버전의 mysqld에는 디렉터리에 대한 전체 경로가 명시적으로 설정됩니다. tarball 설치의 경우, patchelf와 같은 툴로 mysqld를 패치해야 합니다.
mysqld 서버를 설치할 위치입니다.
secure_file_priv 시스템 변수의 기본값입니다. 기본값은 플랫폼에 따라 다르며 INSTALL_LAYOUT CMake 옵션의 값에 의존합니다. secure_file_priv 시스템 변수에 대한 설명은 Section 7.1.8, “Server System Variables”를 참조하십시오.
aclocal/mysql.m4를 설치할 위치입니다.
정적 라이브러리를 설치할지 여부입니다. 기본값은 ON입니다. OFF로 설정하면 libmysqlclient.a, libmysqlservices.a 라이브러리 파일은 설치되지 않습니다.
추가 지원 파일을 설치할 위치입니다.
mysqld 바이너리 내 심볼 순서를 랜덤화할지 여부입니다. 기본값은 OFF입니다. 이 옵션은 디버깅 목적에만 활성화해야 합니다.
LINK_RANDOMIZE 옵션의 seed 값입니다. 값은 문자열입니다. 기본값은 임의로 선택된 mysql입니다.
MySQL 데이터 디렉터리 위치입니다.
이 값은 서버 시작 시 --datadir 옵션으로 설정할 수 있습니다.
Connector/ODBC 설정 시 사용될 수 있는 ODBC include 디렉터리 위치입니다.
Connector/ODBC 설정 시 사용될 수 있는 ODBC 라이브러리 디렉터리 위치입니다.
기본 my.cnf 옵션 파일 디렉터리입니다.
이 위치는 서버 시작 시 설정할 수 없지만, --defaults-file=file_name 옵션을 사용해 특정 옵션 파일로 서버를 시작할 수 있습니다. 여기서 _file_name_은 파일의 전체 경로입니다.
MySQL이 systemd에 의해 관리될 때 PID 파일을 생성할 디렉터리 이름입니다. 기본값은 /var/run/mysqld이며, INSTALL_LAYOUT 값에 따라 암묵적으로 변경될 수 있습니다.
이 옵션은 WITH_SYSTEMD가 활성화되지 않으면 무시됩니다.
MySQL이 systemd에 의해 관리될 때 사용할 MySQL 서비스 이름입니다. 기본값은 mysqld이며, INSTALL_LAYOUT 값에 따라 암묵적으로 변경될 수 있습니다.
이 옵션은 WITH_SYSTEMD가 활성화되지 않으면 무시됩니다.
tmpdir 시스템 변수에 사용할 기본 위치입니다. 지정하지 않으면 <stdio.h>에 정의된 P_tmpdir 값이 기본값이 됩니다.
스토리지 엔진은 플러그인으로 빌드됩니다. 플러그인은 정적 모듈(서버에 컴파일) 또는 동적 모듈(동적 라이브러리로 빌드되며, 사용하기 전에 INSTALL PLUGIN 스테이트먼트나 --plugin-load 옵션을 통해 서버에 설치해야 함)로 빌드할 수 있습니다. 일부 플러그인은 정적 또는 동적 빌드를 지원하지 않을 수 있습니다.
InnoDB, MyISAM, MERGE, MEMORY, CSV 엔진은 필수이며(항상 서버에 컴파일됨), 명시적으로 설치할 필요가 없습니다.
스토리지 엔진을 서버에 정적으로 컴파일하려면 -DWITH_engine_STORAGE_ENGINE=1을 사용합니다. 허용되는 engine 값으로는 ARCHIVE, BLACKHOLE, EXAMPLE, FEDERATED 등이 있습니다. 예:
1-DWITH_ARCHIVE_STORAGE_ENGINE=1 2-DWITH_BLACKHOLE_STORAGE_ENGINE=1
NDB Cluster 지원과 함께 MySQL을 빌드하려면 WITH_NDB 옵션을 사용하십시오.
참고
Performance Schema 지원 없이 컴파일하는 것은 불가능합니다. 특정 종류의 계측 없이 컴파일하려는 경우에는 다음 CMake 옵션으로 수행할 수 있습니다:
1DISABLE_PSI_COND 2DISABLE_PSI_DATA_LOCK 3DISABLE_PSI_ERROR 4DISABLE_PSI_FILE 5DISABLE_PSI_IDLE 6DISABLE_PSI_MEMORY 7DISABLE_PSI_METADATA 8DISABLE_PSI_MUTEX 9DISABLE_PSI_PS 10DISABLE_PSI_RWLOCK 11DISABLE_PSI_SOCKET 12DISABLE_PSI_SP 13DISABLE_PSI_STAGE 14DISABLE_PSI_STATEMENT 15DISABLE_PSI_STATEMENT_DIGEST 16DISABLE_PSI_TABLE 17DISABLE_PSI_THREAD 18DISABLE_PSI_TRANSACTION
예를 들어, mutex 계측 없이 컴파일하려면 -DDISABLE_PSI_MUTEX=1을 사용하여 MySQL을 구성하십시오.
빌드에서 스토리지 엔진을 제외하려면 -DWITH_engine_STORAGE_ENGINE=0을 사용합니다. 예:
1-DWITH_ARCHIVE_STORAGE_ENGINE=0 2-DWITH_EXAMPLE_STORAGE_ENGINE=0 3-DWITH_FEDERATED_STORAGE_ENGINE=0
또한 -DWITHOUT_engine_STORAGE_ENGINE=1을 사용하여 빌드에서 스토리지 엔진을 제외할 수도 있습니다(하지만 -DWITH_engine_STORAGE_ENGINE=0을 권장합니다). 예:
1-DWITHOUT_ARCHIVE_STORAGE_ENGINE=1 2-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 3-DWITHOUT_FEDERATED_STORAGE_ENGINE=1
특정 스토리지 엔진에 대해 -DWITH_engine_STORAGE_ENGINE 및 -DWITHOUT_engine_STORAGE_ENGINE 중 어느 것도 지정하지 않으면, 해당 엔진은 공유 모듈로 빌드되거나, 공유 모듈로 빌드할 수 없는 경우 제외됩니다.
이 옵션은 바이너리에 .gdb_index 섹션 생성 활성화 여부를 결정하며, 이를 통해 디버거에서 바이너리를 더 빠르게 로드할 수 있습니다. 기본적으로 이 옵션은 비활성화되어 있습니다. lld 링커가 사용되며, 다른 링커가 사용되면 효과가 없습니다. lld 또는 GNU gold 이외의 링커를 사용하는 경우 이 옵션은 효과가 없습니다.
컴파일 환경에 대한 설명 코멘트입니다. mysqld는 COMPILATION_COMMENT_SERVER를 사용하는 반면, 다른 프로그램은 COMPILATION_COMMENT를 사용합니다.
바이너리 실행 파일의 디버그 섹션을 압축할지 여부입니다(Linux 전용). 실행 파일 디버그 섹션을 압축하면 빌드 과정에서 추가 CPU 시간이 소요되는 대신 공간을 절약합니다.
기본값은 OFF입니다. 이 옵션을 명시적으로 설정하지 않았지만 COMPRESS_DEBUG_SECTIONS 환경 변수가 설정된 경우, 옵션은 해당 변수의 값을 사용합니다.
mysqld에서 사용할 컴파일 환경에 대한 설명 코멘트입니다(예: version_comment 시스템 변수 설정). 서버 이외의 프로그램은 COMPILATION_COMMENT를 사용합니다.
서버 캐릭터 세트입니다. 기본적으로 MySQL은 utf8mb4 캐릭터 세트를 사용합니다.
_charset_name_은 binary, armscii8, ascii, big5,
cp1250, cp1251, cp1256, cp1257,
cp850, cp852, cp866, cp932,
dec8, eucjpms, euckr, gb2312,
gbk, geostd8, greek, hebrew,
hp8, keybcs2, koi8r, koi8u,
latin1, latin2, latin5, latin7,
macce, macroman, sjis, swe7,
tis620, ucs2, ujis, utf8mb3,
utf8mb4, utf16, utf16le, utf32 중 하나일 수 있습니다.
이 값은 서버 시작 시 --character-set-server 옵션으로 설정할 수 있습니다.
서버 콜레이션입니다. 기본적으로 MySQL은 utf8mb4_0900_ai_ci를 사용합니다. 각 캐릭터 세트에서 어떤 콜레이션을 사용할 수 있는지는 SHOW COLLATION 스테이트먼트로 확인할 수 있습니다.
이 값은 서버 시작 시 --collation_server 옵션으로 설정할 수 있습니다.
모든 DISABLE_PSI_* 빌드 옵션을 활성화합니다. 이는 해당 옵션을 모두 ON으로 설정하는 것과 같습니다.
DISABLE_PERFSCHEMA의 기본값은 OFF입니다.
Performance Schema condition 계측을 제외할지 여부입니다. 기본값은 OFF(포함)입니다.
Performance Schema file 계측을 제외할지 여부입니다. 기본값은 OFF(포함)입니다.
Performance Schema idle 계측을 제외할지 여부입니다. 기본값은 OFF(포함)입니다.
Performance Schema memory 계측을 제외할지 여부입니다. 기본값은 OFF(포함)입니다.
Performance Schema metadata 계측을 제외할지 여부입니다. 기본값은 OFF(포함)입니다.
Performance Schema mutex 계측을 제외할지 여부입니다. 기본값은 OFF(포함)입니다.
Performance Schema rwlock 계측을 제외할지 여부입니다. 기본값은 OFF(포함)입니다.
Performance Schema socket 계측을 제외할지 여부입니다. 기본값은 OFF(포함)입니다.
Performance Schema stored program 계측을 제외할지 여부입니다. 기본값은 OFF(포함)입니다.
Performance Schema stage 계측을 제외할지 여부입니다. 기본값은 OFF(포함)입니다.
Performance Schema statement 계측을 제외할지 여부입니다. 기본값은 OFF(포함)입니다.
Performance Schema statement digest 계측을 제외할지 여부입니다. 기본값은 OFF(포함)입니다.
Performance Schema table 계측을 제외할지 여부입니다. 기본값은 OFF(포함)입니다.
Performance Schema prepared statements 인스턴스 계측을 제외합니다. 기본값은 OFF(포함)입니다.
Performance Schema thread 계측을 제외합니다. 기본값은 OFF(포함)입니다.
계측 없이 빌드하는 경우에만 thread를 비활성화해야 합니다. 다른 계측은 thread에 의존성이 있기 때문입니다.
Performance Schema transaction 계측을 제외합니다. 기본값은 OFF(포함)입니다.
performance schema data lock 계측을 제외합니다. 기본값은 OFF(포함)입니다.
performance schema 서버 에러 계측을 제외합니다. 기본값은 OFF(포함)입니다.
experimental InnoDB 시스템 변수를 활성화할지 여부입니다. experimental 시스템 변수는 MySQL 개발에 참여하는 사용자를 위한 것이며, 개발 또는 테스트 환경에서만 사용해야 합니다. 또한 향후 MySQL 릴리스에서 예고 없이 제거될 수 있습니다. experimental 시스템 변수에 대한 정보는 MySQL 소스 트리의 /storage/innobase/handler/ha_innodb.cc를 참조하십시오. experimental 시스템 변수는 “PLUGIN_VAR_EXPERIMENTAL” 문자열을 검색하여 식별할 수 있습니다.
gcov 지원을 포함할지 여부입니다(Linux 전용).
gprof를 활성화할지 여부입니다(최적화된 Linux 빌드만).
이 옵션은 MySQL 클라이언트 라이브러리에 대해 컴파일된 기본 LOCAL capability를 제어합니다. 별도 설정을 하지 않은 클라이언트는 MySQL 빌드 시 지정된 ENABLED_LOCAL_INFILE 설정에 따라 LOCAL capability가 비활성화되거나 활성화됩니다.
기본적으로 MySQL 바이너리 배포본의 클라이언트 라이브러리는 ENABLED_LOCAL_INFILE이 비활성화된 상태로 컴파일됩니다. 소스에서 MySQL을 컴파일하는 경우, 별도 설정을 하지 않은 클라이언트에서 LOCAL capability를 비활성 또는 활성화할지에 따라 ENABLED_LOCAL_INFILE을 비활성 또는 활성 상태로 구성하십시오.
ENABLED_LOCAL_INFILE은 클라이언트 측 LOCAL capability의 기본값을 제어합니다. 서버의 경우, local_infile 시스템 변수가 서버 측 LOCAL capability를 제어합니다. LOAD DATA LOCAL 스테이트먼트를 서버가 명시적으로 거부하거나 허용하도록 하려면(클라이언트 프로그램 및 라이브러리가 빌드 또는 런타임 시 어떻게 구성되었는지에 관계없이), mysqld를 --local-infile를 비활성 또는 활성 상태로 시작하십시오. local_infile는 런타임에도 설정할 수 있습니다. Section 8.1.6, “Security Considerations for LOAD DATA LOCAL”을 참조하십시오.
SHOW PROFILE 및 SHOW PROFILES 스테이트먼트용 쿼리 프로파일링 코드를 활성화할지 여부입니다.
기본적으로 CMake는 지원되는 컴파일러의 최소 버전을 검사합니다. 이 검사를 비활성화하려면 -DFORCE_UNSUPPORTED_COMPILER=ON을 사용하십시오.
프로파일 가이드 최적화(PGO) 데이터를 생성할지 여부입니다. 이 옵션은 GCC로 PGO를 실험할 수 있도록 제공합니다. MySQL 소스 배포본의 cmake/fprofile.cmake에서 FPROFILE_GENERATE 및 FPROFILE_USE 사용에 대한 정보를 참조하십시오. 이들 옵션은 GCC 8 및 9에서 테스트되었습니다.
프로파일 가이드 최적화(PGO) 데이터를 사용할지 여부입니다. 이 옵션은 GCC로 PGO를 실험할 수 있도록 제공합니다. MySQL 소스 배포본의 cmake/fprofile.cmake 파일에서 FPROFILE_GENERATE 및 FPROFILE_USE 사용에 대한 정보를 참조하십시오. 이들 옵션은 GCC 8 및 9에서 테스트되었습니다.
FPROFILE_USE를 활성화하면 WITH_LTO도 활성화됩니다.
over-aligned 타입의 동적 스토리지에 사용되는 메모리 할당 함수(ut::aligned_name 라이브러리 함수)용 performance schema 메모리 트레이싱 모듈을 활성화할지 여부입니다.
Linux에서 -DBUILD_CONFIG=mysql_release 옵션이 지정된 경우, 기본적으로 libaio 라이브러리를 링크해야 합니다. libaio가 없거나 설치를 원하지 않는 경우 -DIGNORE_AIO_CHECK=1을 지정하여 해당 체크를 무시할 수 있습니다.
테이블당 최대 인덱스 수입니다. 기본값은 64이며, 최대값은 255입니다. 64보다 작은 값은 무시되고 기본값 64가 사용됩니다.
MySQL 유지보수자 전용 개발 환경을 활성화할지 여부입니다. 활성화된 경우, 컴파일러 경고가 에러로 취급됩니다.
예상치 못한 서버 중지 시 코어 덤프를 생성할 수 있도록 모든 실행 파일에 get-task-allow entitlement를 추가할지 여부입니다.
macOS 11+에서는 com.apple.security.get-task-allow entitlement가 있는 프로세스에만 코어 덤프가 허용되며, 이 CMake 옵션이 해당 entitlement를 활성화합니다. 이 entitlement는 다른 프로세스가 해당 프로세스 메모리에 attach 및 read/modify할 수 있도록 허용하며, --core-file이 예상대로 동작하도록 합니다.
InnoDB에서 사용할 mutex 타입입니다. 다음 옵션이 있습니다:
event: event mutex를 사용합니다. 기본값이며 기존 InnoDB mutex 구현입니다.
sys: UNIX 시스템에서는 POSIX mutex를 사용하고, Windows에서는 가능한 경우 CRITICAL_SECTION 오브젝트를 사용합니다.
futex: condition variable 대신 Linux futex를 사용하여 대기 중인 스레드를 스케줄링합니다.
X Plugin이 TCP/IP 연결을 수신 대기하는 포트 번호입니다. 기본값은 33060입니다.
이 값은 서버 시작 시 mysqlx_port 시스템 변수로 설정할 수 있습니다.
서버가 X Plugin 소켓 연결을 수신 대기하는 Unix 소켓 파일 경로입니다. 절대 경로여야 합니다. 기본값은 /tmp/mysqlx.sock입니다.
이 값은 서버 시작 시 mysqlx_port 시스템 변수로 설정할 수 있습니다.
Windows 또는 macOS에서 프로젝트 파일 이름에 포함할 프로젝트 이름입니다.
서버가 TCP/IP 연결을 수신 대기하는 포트 번호입니다. 기본값은 3306입니다.
이 값은 서버 시작 시 --port 옵션으로 설정할 수 있습니다.
서버가 소켓 연결을 수신 대기하는 Unix 소켓 파일 경로입니다. 절대 경로여야 합니다. 기본값은 /tmp/mysql.sock입니다.
이 값은 서버 시작 시 --socket 옵션으로 설정할 수 있습니다.
옵티마이저 트레이싱을 지원할지 여부입니다. Section 10.15, “Tracing the Optimizer”를 참조하십시오.
Linux 시스템에서 빌드할 때, 빌드 위치와 시간에 독립적인 빌드 결과를 생성하기 위한 추가 처리를 수행할지 여부를 제어합니다.
이 옵션은 RelWithDebInfo 빌드에서 기본값이 ON입니다.
억제된 컴파일러 경고를 표시하되, -Werror로 인해 실패하지 않도록 합니다. 기본값은 OFF입니다.
Windows에서 함수 인라이닝을 비활성화할지 여부입니다. 기본값은 OFF(inlining 활성)입니다.
CMake는 기본적으로 standard 링커를 사용합니다. 선택적으로 lld 또는 mold를 전달하여 다른 링커를 지정할 수 있습니다. mold는 버전 2 이상이어야 합니다.
이 옵션은 Enterprise Linux를 제외한 Linux 기반 시스템에서 사용할 수 있으며, Enterprise Linux에서는 항상 ld 링커를 사용합니다.
참고
기존에는 USE_LD_LLD 옵션을 사용하여 Clang용 LLVM lld 링커를 명시적으로 활성(기본값) 또는 비활성화할 수 있었습니다. MySQL 8.3에서는 USE_LD_LLD가 제거되었습니다.
GCS Java wrapper 빌드 시 필요한 Ant의 경로를 설정합니다. WITH_ANT을 Ant tarball 또는 압축 해제된 아카이브가 저장된 디렉터리 경로로 설정합니다. WITH_ANT이 설정되지 않았거나, system이라는 특수 값으로 설정된 경우, 빌드 프로세스는 $PATH에 ant 바이너리가 존재한다고 가정합니다.
컴파일러가 지원하는 경우 AddressSanitizer를 활성화할지 여부입니다. 기본값은 OFF입니다.
use-after-scope 검출을 위한 AddressSanitizer -fsanitize-address-use-after-scope Clang 플래그를 활성화할지 여부입니다. 기본값은 off입니다. 이 옵션을 사용하려면 -DWITH_ASAN도 활성화해야 합니다.
대응되는 서버 인증 플러그인이 빌드되는 경우 자동으로 활성화됩니다. 이 값은 다른 CMake 옵션에 따라 결정되므로 명시적으로 설정하지 않아야 합니다.
LDAP 인증 플러그인을 빌드할 수 없는 경우 에러를 보고할지 여부입니다:
이 옵션이 비활성화된 경우(기본값), 필요한 헤더 파일 및 라이브러리를 찾으면 LDAP 플러그인이 빌드됩니다. 찾지 못하면 CMake는 이에 대한 메시지를 표시합니다.
이 옵션이 활성화된 경우, 필요한 헤더 파일 및 라이브러리를 찾지 못하면 CMake가 에러를 발생시키며, 서버 빌드를 중단합니다.
소스 트리에 해당 플러그인이 포함된 경우 PAM 인증 플러그인을 빌드할지 여부입니다. (Section 8.4.1.4, “PAM Pluggable Authentication” 참조.) 이 옵션이 지정되었는데 플러그인을 컴파일할 수 없는 경우, 빌드는 실패합니다.
Amazon Web Services software development kit의 위치입니다.
클라이언트 라이브러리에 클라이언트 측 프로토콜 트레이싱 프레임워크를 빌드할지 여부입니다. 기본적으로 이 옵션은 활성화되어 있습니다.
프로토콜 트레이스 클라이언트 플러그인 작성에 대한 정보는 Writing Protocol Trace Plugins을 참조하십시오.
또한 WITH_TEST_TRACE_PLUGIN 옵션도 참조하십시오.
curl 라이브러리의 위치입니다. _curl_type_은 system(system curl 라이브러리 사용), curl 라이브러리에 대한 경로 이름, curl 지원 비활성화를 위한 no|off|none, 또는 extra/curl/의 bundled curl 배포본을 사용하기 위한 bundled 중 하나일 수 있습니다.
디버깅 지원을 포함할지 여부입니다.
MySQL을 디버깅 지원과 함께 구성하면 서버를 시작할 때 --debug="d,parser_debug" 옵션을 사용할 수 있습니다. 이 옵션은 SQL 스테이트먼트를 처리하는 데 사용되는 Bison 파서가 파서 트레이스를 서버의 standard error output으로 출력하게 합니다. 일반적으로 이 출력은 에러 로그에 기록됩니다.
InnoDB 스토리지 엔진에 대한 sync 디버그 체크는 UNIV_DEBUG 아래에 정의되어 있으며, WITH_DEBUG 옵션을 사용해 디버깅 지원을 컴파일한 경우 사용 가능합니다. 디버깅 지원이 컴파일된 상태에서는 innodb_sync_debug 구성 옵션으로 InnoDB sync 디버그 체크를 활성화 또는 비활성화할 수 있습니다.
WITH_DEBUG를 활성화하면 Debug Sync도 활성화됩니다. 이 기능은 테스트 및 디버깅에 사용됩니다. 컴파일된 상태에서는 런타임에 기본적으로 비활성화되어 있습니다. 이를 활성화하려면, mysqld를 timeout 값 _N_이 0보다 큰 --debug-sync-timeout=N 옵션으로 시작하십시오(기본값 0은 Debug Sync를 비활성화합니다). _N_은 개별 synchronization point에 대한 기본 timeout이 됩니다.
InnoDB 스토리지 엔진에 대한 sync 디버그 체크는 WITH_DEBUG 옵션을 사용해 디버깅 지원을 컴파일한 경우 사용 가능합니다.
Debug Sync facility 및 synchronization point 사용 방법에 대한 설명은 MySQL Internals: Test Synchronization을 참조하십시오.
서버 진단 로깅 옵션(--log-diagnostic-enable 및 --log-diagnostic)을 활성화합니다. 내부용입니다.
사용할 libedit/editline 라이브러리를 지정합니다. 허용되는 값은 bundled(기본값) 및 system입니다.
MySQL은 정규식 연산 지원을 위해 ICU(International Components for Unicode)를 사용합니다. WITH_ICU 옵션은 포함할 ICU 지원 유형 또는 사용할 ICU 설치의 경로 이름을 나타냅니다.
_icu_type_은 다음 값 중 하나일 수 있습니다:
bundled: 배포본에 bundled된 ICU 라이브러리를 사용합니다. 기본값이며 Windows에서 지원되는 유일한 옵션입니다.
system: system ICU 라이브러리를 사용합니다.
_path_name_은 사용할 ICU 설치에 대한 경로 이름입니다. 이는 icu_type 값 system을 사용하는 것보다 선호될 수 있는데, 그 이유는 CMake가 시스템에 설치된 오래되었거나 잘못된 ICU 버전을 감지하여 사용하는 것을 방지할 수 있기 때문입니다. (동일한 효과를 얻는 또 다른 방법은 WITH_ICU를 system으로 설정하고 CMAKE_PREFIX_PATH 옵션을 _path_name_으로 설정하는 것입니다.)
추가 InnoDB 디버깅 지원을 포함할지 여부입니다.
WITH_INNODB_EXTRA_DEBUG를 활성화하면 추가 InnoDB 디버그 체크가 활성화됩니다. 이 옵션은 WITH_DEBUG가 활성화된 경우에만 활성화할 수 있습니다.
-ljemalloc로 링크할지 여부입니다. 활성화된 경우, 내장 malloc(), calloc(), realloc(), free() 루틴은 비활성화됩니다. 기본값은 OFF입니다.
WITH_JEMALLOC과 WITH_TCMALLOC은 상호 배타적입니다.
사용할 libevent 라이브러리를 지정합니다. 허용되는 값은 bundled(기본값) 및 system입니다. system이 지정되었는데 system libevent 라이브러리를 찾지 못하면, 에러가 발생하며 bundled된 libevent는 사용되지 않습니다.
libevent 라이브러리는 X Plugin 및 MySQL Router에 필요합니다.
libwrap(TCP wrapper) 지원을 포함할지 여부입니다.
LOCK_ORDER 툴링을 활성화할지 여부입니다. 기본적으로 이 옵션은 비활성화되어 있으며, 서버 빌드에는 툴링이 포함되지 않습니다. 툴링이 활성화된 경우 LOCK_ORDER 툴을 사용할 수 있으며, Section 7.9.3, “The LOCK_ORDER Tool”에서 설명한 대로 사용할 수 있습니다.
참고
WITH_LOCK_ORDER 옵션이 활성화된 MySQL 빌드에는 flex 프로그램이 필요합니다.
AddressSanitizer 없이 LeakSanitizer를 실행할지 여부입니다. 기본값은 OFF입니다.
컴파일러가 지원하는 경우 링크 타임 최적화기를 활성화할지 여부입니다. 기본값은 FPROFILE_USE가 활성화된 경우를 제외하고 OFF입니다.
WITH_LZ4 옵션은 zlib 지원의 출처를 나타냅니다:
bundled: 배포본에 bundled된 lz4 라이브러리를 사용합니다. 기본값입니다.
system: system lz4 라이브러리를 사용합니다.
MeCab 파서를 컴파일하는 데 사용합니다. MeCab을 기본 설치 디렉터리에 설치했다면 -DWITH_MECAB=system을 설정하십시오. system 옵션은 소스 또는 native 패키지 관리 유틸리티를 통해 바이너리로 설치한 MeCab에 적용됩니다. MeCab을 커스텀 설치 디렉터리에 설치한 경우, 예를 들어 -DWITH_MECAB=/opt/mecab처럼 MeCab 설치 경로를 지정하십시오. system 옵션이 동작하지 않는 경우에도 MeCab 설치 경로 지정은 항상 동작해야 합니다.
관련 정보는 Section 14.9.9, “MeCab Full-Text Parser Plugin”을 참조하십시오.
컴파일러가 지원하는 경우 MemorySanitizer를 활성화할지 여부입니다. 기본값은 off입니다.
이 옵션이 효과를 가지려면, MySQL에 링크되는 모든 라이브러리도 해당 옵션을 활성화한 상태로 컴파일되어 있어야 합니다.
Visual Studio CRT 메모리 릭 트레이싱을 활성화할지 여부입니다. 기본값은 OFF입니다.
MSVC 코드 분석을 활성화할지 여부입니다. 기본값은 ON입니다.
X Plugin 지원과 함께 빌드할지 여부입니다. 기본값은 ON입니다. Chapter 22, Using MySQL as a Document Store를 참조하십시오.
NUMA 메모리 할당 정책을 명시적으로 설정합니다. CMake는 현재 플랫폼에 NUMA 지원이 있는지 여부에 따라 기본 WITH_NUMA 값을 설정합니다. NUMA 지원이 없는 플랫폼에서는 CMake가 다음과 같이 동작합니다:
NUMA 옵션을 지정하지 않은 경우(일반적인 경우), CMake는 “NUMA library missing or required version not available”라는 경고만 출력하고 계속 진행합니다.
-DWITH_NUMA=ON을 지정한 경우, CMake는 “NUMA library missing or required version not available”라는 에러와 함께 중단합니다.
RPM 및 Debian 패키지에서 일반적으로 사용하는 플래그를 해당 플랫폼의 단독 빌드에 추가할지 여부입니다. 기본값은 nondebug 빌드에서 ON입니다.
사용할 Protocol Buffers 패키지를 지정합니다. _protobuf_type_은 다음 값 중 하나일 수 있습니다:
bundled: 배포본에 bundled된 패키지를 사용합니다. 기본값입니다. 또한 INSTALL_PRIV_LIBDIR을 사용하여 동적 Protobuf 라이브러리 디렉터리를 수정할 수 있습니다.
system: 시스템에 설치된 패키지를 사용합니다.
다른 값은 무시되며, bundled로 fallback됩니다.
rapid development cycle 플러그인을 빌드할지 여부입니다. 활성화된 경우 빌드 트리에 해당 플러그인을 포함하는 rapid 디렉터리가 생성됩니다. 비활성화된 경우 빌드 트리에 rapid 디렉터리가 생성되지 않습니다. 소스 트리에서 rapid 디렉터리를 제거한 경우를 제외하고 기본값은 ON이며, 해당 디렉터리가 제거된 경우 기본값은 OFF가 됩니다.
포함할 RapidJSON 라이브러리 지원 유형입니다. _rapidjson_type_은 다음 값 중 하나일 수 있습니다:
bundled: 배포본에 bundled된 RapidJSON 라이브러리를 사용합니다. 기본값입니다.
system: system RapidJSON 라이브러리를 사용합니다. 버전 1.1.0 이상이 필요합니다.
MySQL Router를 빌드할지 여부입니다. 기본값은 ON입니다.
내부용입니다. Windows에서는 지원되지 않습니다.
-DWITH_SSL={ssl_type | path_name}암호화된 연결, 난수 생성용 entropy, 기타 암호화 관련 작업을 지원하려면 MySQL은 SSL 라이브러리를 사용하여 빌드되어야 합니다. 이 옵션은 사용할 SSL 라이브러리를 지정합니다.
_ssl_type_은 다음 값 중 하나일 수 있습니다:
system: system OpenSSL 라이브러리를 사용합니다. 기본값입니다.
macOS 및 Windows에서는 system SSL 라이브러리가 없기 때문에, system을 사용하는 경우 CMake가 수동으로 설치된 OpenSSL 라이브러리 경로를 전달받은 것처럼 MySQL을 빌드하도록 구성합니다. macOS에서 brew install openssl은 /usr/local/opt/openssl에 설치하므로 system이 이를 찾을 수 있습니다. Windows에서는 %ProgramFiles%/OpenSSL, %ProgramFiles%/OpenSSL-Win32, %ProgramFiles%/OpenSSL-Win64, C:/OpenSSL, C:/OpenSSL-Win32, C:/OpenSSL-Win64를 검사합니다.
yes: system의 동의어입니다.
opensslversion: EL7의 openssl11, EL8의 openssl3(또는 openssl3-fips)와 같은 대체 OpenSSL system 패키지를 사용합니다.
LDAP 및 Kerberos와 같은 인증 플러그인은 이러한 대체 OpenSSL 버전을 지원하지 않으므로 비활성화됩니다.
_path_name_은 사용할 OpenSSL 설치 위치에 대한 경로 이름입니다. 이는 ssl_type 값 system을 사용하는 것보다 선호될 수 있는데, 그 이유는 CMake가 시스템에 설치된 오래되었거나 잘못된 OpenSSL 버전을 감지하여 사용하는 것을 방지할 수 있기 때문입니다. (동일한 효과를 얻는 또 다른 방법은 WITH_SSL을 system으로 설정하고 CMAKE_PREFIX_PATH 옵션을 _path_name_으로 설정하는 것입니다.)
SSL 라이브러리 설정에 대한 추가 정보는 Section 2.8.6, “Configuring SSL Library Support”를 참조하십시오.
개발 및 디버깅에만 사용되는 서버의 SHOW PARSE_TREE 지원을 활성화합니다. 릴리스 빌드에서는 사용하지 않으며 프로덕션 환경에서도 지원되지 않습니다.
systemd support 파일 설치를 활성화할지 여부입니다. 기본적으로 이 옵션은 비활성화되어 있습니다. 활성화된 경우 systemd support 파일이 설치되며, mysqld_safe와 System V initialization 스크립트와 같은 스크립트는 설치되지 않습니다. systemd를 사용할 수 없는 플랫폼에서 WITH_SYSTEMD를 활성화하면 CMake 에러가 발생합니다.
이 옵션으로 서버를 빌드하면, MySQL은 모든 systemd 메시지를 서버 에러 로그에 포함합니다(Section 7.4.2, “The Error Log” 참조).
systemd 사용에 대한 자세한 정보는 Section 2.5.9, “Managing MySQL Server with systemd”를 참조하십시오. 해당 섹션에서는 [mysqld_safe] 옵션 그룹에 일반적으로 지정하는 옵션을 지정하는 방법에 대해서도 설명합니다. systemd를 사용할 때는 mysqld_safe가 설치되지 않으므로, 이러한 옵션은 다른 방식으로 지정해야 합니다.
이 옵션은 다음 CMake 옵션 중 명시적으로 설정되지 않은 옵션에 대해 system 값을 설정하는 “umbrella” 옵션 역할을 합니다: WITH_CURL, WITH_EDITLINE, WITH_ICU, WITH_LIBEVENT, WITH_LZ4, WITH_LZMA, WITH_PROTOBUF, WITH_RE2, WITH_SSL, WITH_ZLIB, WITH_ZSTD.
MySQL을 실행하는 플랫폼에서 systemd가 MySQL을 실행하는 경우, 추가 systemd 디버깅 정보를 생성할지 여부입니다. 기본값은 OFF입니다.
-ltcmalloc로 링크할지 여부입니다. 활성화된 경우, 내장 malloc(), calloc(), realloc(), free() 루틴은 비활성화됩니다. 기본값은 OFF입니다.
소스에는 tcmalloc 라이브러리가 포함되어 있으며, 이 옵션을 BUNDLED로 설정하여 bundled 버전을 사용하도록 빌드할 수 있습니다. BUNDLED는 Linux 시스템에서만 지원됩니다.
WITH_TCMALLOC과 WITH_JEMALLOC은 상호 배타적입니다.
테스트 프로토콜 트레이스 클라이언트 플러그인(Using the Test Protocol Trace Plugin 참조)을 빌드할지 여부입니다. 기본적으로 이 옵션은 비활성화되어 있습니다. 이 옵션을 활성화해도 WITH_CLIENT_PROTOCOL_TRACING 옵션이 활성화되지 않으면 효과가 없습니다. MySQL이 두 옵션 모두 활성화된 상태로 구성된 경우, libmysqlclient 클라이언트 라이브러리는 테스트 프로토콜 트레이스 플러그인이 내장된 상태로 빌드되며, 모든 표준 MySQL 클라이언트는 해당 플러그인을 로드합니다. 그러나 테스트 플러그인이 활성화되어 있더라도 기본적으로는 아무 효과가 없습니다. 플러그인 제어는 환경 변수를 사용해 수행하며, 자세한 내용은 Using the Test Protocol Trace Plugin을 참조하십시오.
참고
자신의 프로토콜 트레이스 플러그인을 사용하려는 경우 WITH_TEST_TRACE_PLUGIN 옵션을 활성화하지 마십시오. 한 번에 하나의 프로토콜 트레이스 플러그인만 로드할 수 있으며, 두 번째 플러그인을 로드하려고 시도하면 에러가 발생합니다. 테스트 프로토콜 트레이스 플러그인이 어떻게 동작하는지 확인하기 위해 이를 활성화한 상태로 MySQL을 이미 빌드했다면, 자신만의 플러그인을 사용하기 전에 테스트 플러그인 없이 MySQL을 다시 빌드해야 합니다.
트레이스 플러그인 작성에 대한 정보는 Writing Protocol Trace Plugins을 참조하십시오.
컴파일러가 지원하는 경우 ThreadSanitizer를 활성화할지 여부입니다. 기본값은 off입니다.
컴파일러가 지원하는 경우 Undefined Behavior Sanitizer를 활성화할지 여부입니다. 기본값은 off입니다.
활성화된 경우 MySQL을 유닛 테스트와 함께 컴파일합니다. 서버를 컴파일하지 않는 경우를 제외하고 기본값은 ON입니다.
Connector/ODBC용 unixODBC 지원을 활성화합니다.
Valgrind 헤더 파일을 컴파일할지 여부를 지정하며, 이를 통해 MySQL 코드에서 Valgrind API를 사용할 수 있습니다. 기본값은 OFF입니다.
Valgrind-aware 디버그 빌드를 생성하려면 일반적으로 -DWITH_VALGRIND=1과 -DWITH_DEBUG=1을 함께 사용합니다. Building Debug Configurations를 참조하십시오.
Windows에서 jemalloc 기능을 활성화하기 위해 jemalloc.dll이 포함된 디렉터리의 경로를 전달합니다. 빌드 시스템은 jemalloc.dll을 mysqld.exe 및/또는 mysqld-debug.exe와 동일한 디렉터리에 복사하고, 메모리 관리 작업에 이를 사용합니다. jemalloc.dll을 찾지 못하거나 필요한 함수를 export하지 않는 경우, 표준 메모리 함수가 사용됩니다. jemalloc 사용 여부는 INFORMATION level 로그 메시지로 기록됩니다.
이 옵션은 Windows용 공식 MySQL 바이너리에서 활성화되어 있습니다.
일부 기능은 서버가 압축 라이브러리 지원과 함께 빌드되어야만 사용할 수 있습니다. 예를 들어 COMPRESS() 및 UNCOMPRESS() 함수, 클라이언트/서버 프로토콜 압축 등이 이에 해당합니다. WITH_ZLIB 옵션은 zlib 지원의 출처를 나타냅니다.
zlib의 최소 지원 버전은 1.2.13입니다.
bundled: 배포본에 bundled된 zlib 라이브러리를 사용합니다. 기본값입니다.
system: system zlib 라이브러리를 사용합니다.
zstd algorithm을 사용하는 연결 압축(Section 6.2.8, “Connection Compression Control” 참조)을 사용하려면 서버를 zstd 라이브러리 지원과 함께 빌드해야 합니다. WITH_ZSTD 옵션은 zstd 지원의 출처를 나타냅니다:
bundled: 배포본에 bundled된 zstd 라이브러리를 사용합니다. 기본값입니다.
system: system zstd 라이브러리를 사용합니다.
MySQL Server 없이 빌드할지 여부입니다. 기본값은 OFF이며, 서버를 빌드합니다.
이 옵션은 experimental로 간주되며, 서버를 포함하여 빌드하는 것이 더 바람직합니다.
이 옵션은 또한 NDB 스토리지 엔진과 관리 및 데이터 노드 프로그램을 포함한 모든 NDB 바이너리 빌드를 방지합니다.
C 컴파일러용 플래그입니다.
C++ 컴파일러용 플래그입니다.
cmake/build_configurations/compiler_options.cmake에 정의된 플래그를 사용할지 여부입니다.
참고
모든 최적화 플래그는 MySQL 빌드 팀에 의해 신중하게 선택되고 테스트되었습니다. 이를 override하면 예기치 않은 결과를 초래할 수 있으며, 이러한 override는 사용자 책임 하에 수행해야 합니다.
sanitizer 빌드에 -O1 -fno-inline을 추가할지 여부입니다. 기본값은 ON입니다.
최적화에 영향을 주지 않는 C 및 C++ 컴파일러 플래그를 직접 지정하려면, CMAKE_C_FLAGS 및 CMAKE_CXX_FLAGS CMake 옵션을 사용하십시오.
자체 컴파일러 플래그를 제공할 때는 CMAKE_BUILD_TYPE도 함께 지정하는 것이 좋습니다.
예를 들어, 64-bit Linux 머신에서 32-bit 릴리스 빌드를 생성하려면 다음과 같이 하십시오:
1$> mkdir build 2$> cd build 3$> cmake .. -DCMAKE_C_FLAGS=-m32 \ 4 -DCMAKE_CXX_FLAGS=-m32 \ 5 -DCMAKE_BUILD_TYPE=RelWithDebInfo
-Onumber와 같은 최적화에 영향을 주는 플래그를 설정하는 경우, CMAKE_C_FLAGS_build_type 및/또는 CMAKE_CXX_FLAGS_build_type 옵션을 설정해야 하며, 여기서 _build_type_은 CMAKE_BUILD_TYPE 값에 대응합니다. 기본 빌드 타입(RelWithDebInfo)에 대해 다른 최적화를 지정하려면 CMAKE_C_FLAGS_RELWITHDEBINFO 및 CMAKE_CXX_FLAGS_RELWITHDEBINFO 옵션을 설정합니다. 예를 들어, Linux에서 -O3와 디버그 심볼과 함께 컴파일하려면 다음과 같이 합니다:
1$> cmake .. -DCMAKE_C_FLAGS_RELWITHDEBINFO="-O3 -g" \ 2 -DCMAKE_CXX_FLAGS_RELWITHDEBINFO="-O3 -g"
NDB Cluster 지원과 함께 MySQL을 컴파일하려면 -DWITH_NDB를 사용할 수 있으며, 이 옵션은 NDB 스토리지 엔진과 모든 NDB 프로그램을 포함하도록 빌드합니다. 이 옵션은 기본적으로 활성화됩니다. NDB 스토리지 엔진 플러그인 빌드를 방지하려면 -DWITH_NDBCLUSTER_STORAGE_ENGINE=OFF를 사용하십시오. 빌드의 다른 측면은 이 섹션에 나열된 다른 옵션으로 제어할 수 있습니다.
다음 옵션은 NDB Cluster 지원과 함께 MySQL 소스를 빌드할 때 적용됩니다.
ndb_drop_table과 같은 NDB 유틸리티를 ndbclient에 정적(OFF) 또는 동적(ON) 링크할지 제어합니다. 기본값은 OFF(정적 링크)입니다. 일반적으로 이러한 프로그램을 빌드할 때는 LD_LIBRARY_PATH 문제 또는 여러 버전의 ndbclient가 설치된 상황을 피하기 위해 정적 링크를 사용합니다. 이 옵션은 target 환경이 엄격하게 제어되며 이미지 크기를 줄이는 것이 바람직한 Docker 이미지 생성 등의 경우를 위해 설계되었습니다.
MySQL NDB Cluster Connector for Java 빌드 시 사용할 classpath를 설정합니다. 기본값은 empty입니다. -DWITH_NDB_JAVA=OFF가 사용된 경우 이 옵션은 무시됩니다.
NDB 커널에서 에러 인젝션을 활성화합니다. 테스트 전용이며, 프로덕션 바이너리 빌드에 사용할 의도는 아닙니다. 기본값은 OFF입니다.
MySQL NDB Cluster를 빌드하며, NDB 플러그인과 모든 NDB Cluster 프로그램을 빌드합니다.
storage/ndb/ndbapi-examples/에 있는 NDB API 예제 프로그램을 빌드합니다. 이에 대한 정보는 NDB API Examples를 참조하십시오.
ndbcluster 플러그인이 빌드에 포함될지 여부만 제어합니다. WITH_NDB는 이 옵션을 자동으로 활성화하므로, WITH_NDB 사용을 권장합니다.
-DWITH_NDBCLUSTER={ON|OFF}mysqld에 NDB 스토리지 엔진 지원을 빌드 및 링크합니다.
이 옵션은 deprecated 상태이며 향후 제거될 수 있습니다. 대신 WITH_NDB를 사용하십시오.
멀티스레드 데이터 노드 실행 파일인 ndbmtd를 빌드합니다. 기본값은 ON입니다.
NDB Cluster 바이너리의 디버그 버전 빌드를 활성화합니다. 기본값은 OFF입니다.
ClusterJ 지원(MySQL NDB Cluster Connector for Java 참조)을 포함하여 Java 지원과 함께 NDB Cluster를 빌드합니다.
이 옵션은 기본적으로 ON입니다. NDB Cluster를 Java 지원 없이 컴파일하려면 CMake 실행 시 -DWITH_NDB_JAVA=OFF를 명시적으로 지정해야 합니다. 그렇지 않으면 Java를 찾지 못했을 때 빌드 구성은 실패합니다.
빌드된 NDB Cluster 관리 서버(ndb_mgmd)가 기본적으로 이 _port_를 사용하도록 합니다. 이 옵션을 설정하지 않으면, 생성된 관리 서버는 기본적으로 포트 1186을 사용하려고 시도합니다.
활성화된 경우, NDB API 테스트 프로그램 집합을 포함합니다. 기본값은 OFF입니다.
ndb_sign_keys 및 기타 NDB 프로그램이 TLS 인증서 및 키 파일을 검색할 때 사용할 기본 경로를 설정합니다.
Windows 플랫폼에서 기본값은 $HOMEDIR/ndb-tls이고, Linux 등의 다른 플랫폼에서는 $HOME/ndb-tls입니다.
2.8.6 Configuring SSL Library Support
2.8.8 Dealing with Problems Compiling MySQL