아래에 특별히 언급된 내용은 없습니다. 모두 두 서버에서 실행해야 하는 명령입니다. 이중 관리 센터 구성이므로 실제로 두 시스템의 ID와 IP가 서로 다릅니다. . 매개변수 구성은 기본적으로 동일합니다
다운로드:/ / dev.mysql.com/downloads/cluster/
1) CentOS6.5에 포함된 mysql 서비스를 정리해서 실행하지 않아도 됩니다. 첫 번째 명령, 다른 시스템이 불가능할 경우
# yum -y remove mysql # rpm -qa | grep mysql* # rpm -e --nodeps mysql-libs-5.1.71-1.el6.x86_64
를 실행하는 것이 좋습니다. 2) 환경 준비
폴더 생성(다음 3가지 카테고리로 나누어 해당 폴더 생성)
存储节点:# mkdir /var/lib/mysql/data 管理节点:# mkdir /var/lib/mysql-cluster SQL节点:可不用 文件夹授权 进程DIR:# mkdir /var/run/mysqld 使用如下的命令来变更权限保证可写入: # chmod -R 1777 /var/lib/mysql # chmod -R 1777 /var/run/mysqld # chmod -R 1777 /var/lib/mysql-cluster
3) mysql-cluster
首先解压MySQL-Cluster-gpl-7.4.2-1.el6.x86_64.rpm-bundle.tar # tar xvf MySQL-Cluster-gpl-7.4.2-1.el6.x86_64.rpm-bundle.tar 然后执行如下命令安装 # rpm -ivh MySQL-Cluster-server-gpl-7.3.4-1.el6.x86_64.rpm # rpm -ivh MySQL-Cluster-client-gpl-7.3.4-1.el6.x86_64.rpm
설치 서버 gpl 패키지가 설치되면 다음과 같은 프롬프트 메시지가 나타나 초기 슈퍼 계정 비밀번호를 알려줍니다. 전체 클러스터 설치는 이 파일의 /root/.mysql_secret에 있습니다.
--------------------------------------------------------------------------------------------------------------------- A RANDOM PASSWORD HAS BEEN SET FOR THE MySQL root USER ! You will find that password in '/root/.mysql_secret'. You must change that password on your first connect, no other statement but 'SET PASSWORD' will be accepted. See the manual for the semantics of the 'password expired' flag. Also, the account for the anonymous user has been removed. In addition, you can run: /usr/bin/mysql_secure_installation which will also give you the option of removing the test database. This is strongly recommended for production servers. -----------------------------------------------------------
1) 다음 명령을 실행합니다.
# cd /var/lib/mysql-cluster # vi config.ini
2) 첨부 파일과 같은 config.ini 파일을 구성합니다. 🎜>100.218
구성 파일 :
config.ini
구성 정보:[computer] Id=mgr-server-01 HostName=192.168.100.218 [mgm default] datadir=/var/lib/mysql-cluster [mgm] HostName=192.168.100.218 NodeId=60 [mgm] HostName=192.168.100.217 NodeId=61 [ndbd default] NoOfReplicas = 2 DataMemory = 50M IndexMemory = 50M MaxNoOfTables = 1024 MaxNoOfAttributes = 5000000 MaxNoOfOrderedIndexes = 10000 [ndbd] HostName=192.168.100.217 DataDir=/var/lib/mysql NodeId=1 [ndbd] HostName=192.168.100.218 DataDir=/var/lib/mysql NodeId=2 [mysqld] HostName=192.168.100.217 NodeId=81 [mysqld] HostName=192.168.100.218 NodeId=82
config .ini
[computer] Id=mgr-server-02 HostName=192.168.100.217 [mgm default] datadir=/var/lib/mysql-cluster [mgm] HostName=192.168.100.218 NodeId=60 [mgm] HostName=192.168.100.217 NodeId=61 [ndbd default] NoOfReplicas = 2 DataMemory = 50M IndexMemory = 50M MaxNoOfTables = 1024 MaxNoOfAttributes = 5000000 MaxNoOfOrderedIndexes = 10000 [ndbd] HostName=192.168.100.217 DataDir=/var/lib/mysql NodeId=1 [ndbd] HostName=192.168.100.218 DataDir=/var/lib/mysql NodeId=2 [mysqld] HostName=192.168.100.217 NodeId=81 [mysqld] HostName=192.168.100.218 NodeId=82
[client] socket=/var/lib/mysql/mysql.sock [mysqld] max_connections=100 datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock ndbcluster ndb-connectstring=192.168.100.218,192.168.100.217 [mysqld_safe] log-error=/var/log/mysqld.log #pid-file=/var/run/mysqld/mysqld.pid pid-file=/var/lib/mysql/mysqld.pid [mysql_cluster] ndb-connectstring=192.168.100.218,192.168.100.217
초기 시작을 실행하기 전에 두 머신의 방화벽이 꺼져 있는지 확인하십시오(서비스 iptables가 중지되거나 방화벽 포트가 액세스 가능하도록 설정, 두 개의 포트는 통신 포트 1186 및 데이터 포트 3306)
처음으로 mgt 콘솔 명령을 시작합니다: ndb_mgmd -f /var/lib/mysql-cluster/config.ini(초기화에는 --initial 추가 필요)
밸런싱 노드 명령을 시작합니다: ndbd --initial /usr/my.cnf --explicit_defaults_for_timestamp &
my.cnf는 일부 시스템의 etc 디렉터리에 있습니다.
시작하는 동안 전체 콘솔 출력을 모니터링해야 합니다.
오류 메시지
를 처리하고 찾아냅니다. 오류 로그 내용을 기반으로 적시에 해결해야 합니다. ---------------------------------- --- ---------------------------------- --- --------모든 것이 정상이면 다음 명령을 사용하여 관리 콘솔을 엽니다. ndb_mgm
Execute # show
다음과 같이 각 노드가 완전히 시작되었는지 확인합니다. , 각 노드가 연결되었으며, 연결되지 않은 노드가 있으면
ndb_mgm> show Connected to Management Server at: 192.168.100.218:1186 Cluster Configuration --------------------- [ndbd(NDB)] 2 node(s) id=1 @192.168.100.217 (mysql-5.6.21 ndb-7.4.2, Nodegroup: 0) id=2 @192.168.100.218 (mysql-5.6.21 ndb-7.4.2, Nodegroup: 0, *) [ndb_mgmd(MGM)] 1 node(s) id=60 @192.168.100.218 (mysql-5.6.21 ndb-7.4.2) id=61 @192.168.100.217 (mysql-5.6.21 ndb-7.4.2) [mysqld(API)] 2 node(s) id=81 @192.168.100.217 (mysql-5.6.21 ndb-7.4.2) id=82 @192.168.100.218 (mysql-5.6.21 ndb-7.4.2)
ndb_mgm> show Cluster Configuration --------------------- [ndbd(NDB)] 2 node(s) id=1 @192.168.100.217 (mysql-5.6.21 ndb-7.4.2, Nodegroup: 0) id=2 @192.168.100.218 (mysql-5.6.21 ndb-7.4.2, Nodegroup: 0, *) [ndb_mgmd(MGM)] 1 node(s) id=60 @192.168.100.218 (mysql-5.6.21 ndb-7.4.2) id=61 @192.168.100.217 (mysql-5.6.21 ndb-7.4.2) [mysqld(API)] 2 node(s) id=81 (not connected, accepting connect from 192.168.100.217) id=82 @192.168.100.218 (mysql-5.6.21 ndb-7.4.2)
mysql -u root -p;
임의의 비밀번호(자세한 내용은 문의하세요.) /root/.mysql_secret 파일을 참조하여 입력한 후 다음 명령을 사용하여 변경하세요. 비밀번호:
SET PASSWORD = PASSWORD('new 비밀번호');
그러나 이 새 비밀번호는
해시
값이어야 하므로 비밀번호를 얻으려면 다음 방법을 사용해야 합니다. 문자열의 해시 값 selectpassword('111111'); 그러나 위 명령을 실행하면 먼저 비밀번호를 설정해야 하는데, 이는 답답한 일이고, 그 다음에는 다른 곳에서 mysql로 이동합니다.
111111의 해시값은 "*FD571203974BA9AFE270FE62151AE967ECA5E0AA"
SET PASSWORD = PASSWORD('*FD571203974BA9AFE270FE62151AE967ECA5E0AA' );
너무 답답해요 . 설정 후 암호문을 사용하여 로그인해야 합니다. 자, 그냥 암호문을 사용하여 입력한 후 다음 명령을 사용하여 일반 텍스트를 사용하여 강제로 로그인하세요
use mysql; delete from user; grant all on *.* to root@'%' identified by "111111" with grant option; flush privileges; quit;
6. 위 단계가 완료된 후 클러스터가 정상적으로 작동하는지 테스트합니다
create database clustertest; use clustertest; CREATE TABLE testtable(Count INT) ENGINE=NDBCLUSTER;
2) 데이터가 잘 생성되는지 테스트한다. 재해 복구 상황에서 동기화 가능(데이터베이스 1개 정지), 손실된 데이터는 재시작 시 자동으로 보충되나요?)
217에서 mysql 서비스를 중지하고 218에서 실행
insert into testtable values (1);
启动217的mysql服务,使用show确认217的数据库节点已经连接上了,执行如下语句
select * from testtable;
如果发现有数据,则表示功能完备
关闭数据节点:# mysqld stop (SQL节点可以用mysqladmin shutdown或别的方式关闭。)
在管理节点上执行:# ndb_mgm -e shutdown
将安全的关闭管理节点和数据节点。
关闭后使用如下的进程检测命令查看一下是否退出来了:
# pgrep mysqld # ps aux | grep nbdb
如果没有,找到对应的pid进行kill 操作即可
kill -9 进程号
启动整个cluster的次序,注意,一些语句已经减去了初始化的内容:
ndb_mgmd -f /var/lib/mysql-cluster/config.ini ndbd mysqld_safe --defaults-file=/usr/my.cnf --explicit_defaults_for_timestamp &
1、mysql安装后,默认会自动启动的,每次启动cluster的时候,都需要先把mysql的服务关闭,太麻烦,于是可以执行如下命令(我出手有点狠):
chkconfig --level 123456 mysql off
2、防火墙问题,偷个懒,我懒得去一一开放端口,干脆把防火墙直接关了(极不推荐的做法)
chkconfig --level 123456 iptables off
위 내용은 MySQL-Cluster 클러스터 구성에 대한 자세한 설명 (RPM 설치 패키지 이중 관리 센터 기준)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!