18.5.4 MySQL Cluster에서 MySQL 서버의 사용법
mysqld은 전통적인 MySQL 서버 프로세스입니다. MySQL Cluster에서 사용하려면 mysqld는 http://dev.mysql.com/downloads/ 에서 사용 가능한 미리 컴파일 된 바이너리에 포함되기 때문에 NDB
스토리지 엔진 지원을 사용하여 구축해야합니다. 소스에서 MySQL을 구축하는 경우 -DWITH_NDBCLUSTER=1
옵션으로 CMake를 호출 해, NDB
지원을 포함해야합니다.
소스에서 MySQL Cluster의 컴파일에 대한 자세한 내용은 섹션 18.2.2.3 "Linux 소스에서 MySQL Cluster 구축" 및 섹션 18.2.3.2 "Windows에서 소스에서 MySQL Cluster의 컴파일 및 설치" 를 참조 하십시오.
(이 섹션에서 설명 한 것 이외에, MySQL Cluster 관련 mysqld 옵션과 변수 내용은 섹션 18.3.4 "MySQL Cluster 용 MySQL Server 옵션 및 변수" 를 참조하십시오.)
Cluster 지원을 사용해 mysqld 바이너리를 구축 한 경우 NDBCLUSTER
스토리지 엔진은 여전히 기본적으로 비활성화되어 있습니다. 다음 2 개의 지정 가능한 옵션 중 하나를 사용하면 엔진을 사용할 수 있습니다.
mysqld를 시작할 때 명령 행에서 부팅 옵션으로
--ndbcluster
를 사용합니다.my.cnf
파일의[mysqld]
섹션에ndbcluster
를 포함한 행을 삽입합니다.
NDBCLUSTER
스토리지 엔진을 사용하여 서버가 실행되고 있는지 확인하는 가장 쉬운 방법은 MySQL Monitor (mysql)에서 SHOW ENGINES
명령문을 발행하는 것입니다. NDBCLUSTER
행에 Support
값으로 값 YES
가 표시됩니다. 이 줄에 NO
가 나타날 경우 또는 이러한 행이 출력에 표시되지 않는 경우, NDB
대응의 MySQL 버전이 작동하지 않습니다. 이 행에 DISABLED
가 표시되는 경우는 앞서 설명한 두 가지 방법 중 하나를 사용하여 활성화해야합니다.
클러스터 구성 데이터를 읽고, MySQL 서버에 적어도 다음의 세 가지 정보가 필요합니다.
MySQL 서버 자체의 클러스터 노드 ID
관리 서버 (MGM 노드)의 호스트 이름 또는 IP 주소
관리 서버에 연결할 수 TCP / IP 포트 수
노드 ID는 동적으로 할당되기 때문에 명시 적으로 지정할 필요가 엄밀하게는 없습니다.
연결 문자열을 지정하려면 mysqld를 시작할 때 명령 행에서 또는 my.cnf
에, mysqld 파라미터 ndb-connectstring
을 사용합니다. 연결 문자열에는 관리 서버를 감지 할 수있는 호스트 이름 또는 IP 주소 및 사용되는 TCP / IP 포트가 포함됩니다.
다음 예제에서는 ndb_mgmd.mysql.com
은 관리 서버가있는 호스트이며, 관리 서버는 포트 1186에서 클러스터 메시지를 기다립니다.
shell> mysqld --ndbcluster --ndb-connectstring=ndb_mgmd.mysql.com:1186
연결 문자열의 자세한 내용은 섹션 18.3.2.3 "MySQL Cluster의 연결 문자열" 을 참조하십시오.
이 정보가 지정되면, MySQL 서버가 클러스터에 전체 참가자 수 있습니다. (이 방법으로 실행하는 mysqld 프로세스는 종종 SQL 노드라고 부르고 있습니다.) 그것은 모든 클러스터 데이터 노드 및 그 상태를 완전히 인식하고 모든 데이터 노드에 연결합니다 합니다. 이 경우 모든 데이터 노드를 트랜잭션 코디네이터로 사용하여 노드 데이터를 읽고 업데이트 할 수 있습니다.
mysql 클라이언트에서 SHOW PROCESSLIST
를 사용하면 MySQL 서버가 클러스터에 연결되어 있는지를 확인할 수 있습니다. MySQL 서버가 클러스터에 연결되어 있고, PROCESS
권한을 가지고있는 경우, 출력의 첫 번째 행이 다음과 같이 표시됩니다.
mysql> SHOW PROCESSLIST \G *************************** 1. row *************************** Id: 1 User: system user Host: db: Command: Daemon Time: 1 State: Waiting for event from ndbcluster Info: NULL
MySQL Cluster에 참여하려면 --ndbcluster
및 --ndb-connectstring
두 옵션 ( my.cnf
동등한 옵션)을 선택하여 mysqld 프로세스를 시작해야합니다. --ndbcluster
옵션 만 붙여 mysqld가 실행 된 경우 나, 그것은 클러스터에 연결할 수없는 경우 스토리지 엔진에 관계없이 NDB
테이블을 조작하거나 새 테이블을 만들 수 없습니다. 후자의 제약은 SQL 노드가 클러스터에 연결되어 있지 않은 상태에서 NDB
테이블과 동일한 이름을 가진 테이블이 생성되는 것을 방지하기 위해 안전 대책입니다. mysqld 프로세스가 MySQL Cluster에 참여하지 않는 동안 다른 스토리지 엔진을 사용하여 테이블을 만들 필요가있는 경우는 --ndbcluster
옵션없이 서버를 시작해야합니다.