1.使用命令:systemctl status firewalld.service查看防火墙状态
2.执行后可以看到绿色字样标注的“active(running)”,说明防火墙是开启状态
3.使用命令:systemctl stop firewalld.service 关闭运行的防火墙
4.下载mysql-cluster-gpl-7.4.26-linux-glibc2.12-x86_64.tar.gz集群
5.安装mysql集群
1)增加组 groupadd mysql
2)增加用户 useradd mysql -g mysql
3)解压
cd /usr/local/
tar -zxvf mysql-cluster-gpl-7.4.26-linux-glibc2.12-x86_64.tar.gz
4)重命名
mysql-cluster-gpl-7.4.26-linux-glibc2.12-x86_64.tar.gz 重命名为mysql
5)运行mysql脚本
cd mysql/
yum -y install autoconf
./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql
6)给mysql用户授权
cd ..
chown -R mysql:mysql mysql
chown -R mysql:mysql /usr/local/mysql
7)复制配置文件my.cnf到etc下my.cnf
cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf
y
cd mysql
8) 复制配置文件mysqld到etc下mysqld
cp support-files/mysql.server /etc/init.d/mysqld
y
9)yum -y install vim*
6.管理节点配置
1)vim /etc/mysql-cluster.ini
[NDBD DEFAULT]
NoOfReplicas=3
#定义在Cluster环境中相同数据的份数,最大为4
DataMemory=200M
#每个数据节点中给数据分配的内存
IndexMemory=20M
#每个数据节点中给索引分配的内存
MaxNoOfAttributes=20480
#该参数用于设置簇中触发程序对象的最大数目。该参数的默认值为768,不修改建表时可能会报708错误
[NDB_MGMD]
NodeId=1
#设置管理节点服务器
HostName=192.168.0.194
DataDir=/usr/local/mysql/data
[NDBD]
NodeId=2
#设置存储节点服务器(NDB节点)
HostName=192.168.0.124
DataDir=/usr/local/mysql/data
[NDBD]
NodeId=3
HostName=192.168.0.173
DataDir=/usr/local/mysql/data
[NDBD]
NodeId=4
#第二个NDB节点
HostName=192.168.0.163
DataDir=/usr/local/mysql/data
[MYSQLD]
NodeId=5
HostName=192.168.0.124
[MYSQLD]
NodeId=6
HostName=192.168.0.173
[MYSQLD]
NodeId=7
HostName=192.168.0.163
2)启动管理节点
cd /usr/local/mysql/bin
./ndb_mgmd -f /etc/mysql-cluster.ini
./ndb_mgmd -f /etc/mysql-cluster.ini --initial (#--initial:第一次启动时加上,其它时候不要加,不然会数据清空,除非是在备份、恢复或配置变化后重启时)
通过netstat -lntpu或者ps -aux |grep ndb_mgmd查看是否启动成功
7.数据节点与sql节点的配置
在124与173,163服务上配置
1)vim /etc/my.cnf
[mysqld]
ndbcluster
#使用ndb集群引擎
ndb-connectstring=192.168.0.194
#指定管理集群的ip地址,多个以,分隔
default-storage-engine=ndbcluster
#设置默认引擎
#user=mysql
#log-error=/usr/local/mysql/mysqld.err
#指定管理集群的ip地址,多个以,分隔
[mysql_cluster]
ndb-connectstring=192.168.0.194
2)在每台存储节点(ndbd)服务器上,如果是第一次启动ndbd进程的话,必须先执行以下命令:
cd /usr/local/mysql/bin
./ndbd --initial #注意,仅应在首次启动ndbd时,或在备份/恢复数据或配置文件发生变化后重启ndbd时使用“--initial”参数。因为该参数会使节点删除由早期ndbd实例创建的、用于恢复的任何文件,包括用于恢复的日志文件。
如果不是第一次启动,直接运行如下命令即可:
cd /usr/local/mysql/bin
./ndbd
查看是否启动成功:
netstat -lntpu或者ps -aux |grep ndbd
3)启动sql节点:
service mysqld start
8.mysql权限调整
新安装的mysql密码是空的。
./mysql -u root -p
use mysql
SELECT `Host`,`User` FROM user;
UPDATE user SET `Host` = '%' WHERE `User` = 'root' LIMIT 1;
FLUSH PRIVILEGES;
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'test' WITH GRANT OPTION;
SELECT `Host`,`User` FROM user;
9.查看集群状态
启动顺序:
管理节点 -> 数据节点 -> SQL节点
关闭顺序:
SQL节点 -> 数据节点 -> 管理节点
数据节点与sql节点都启动成功后在管理节点上查看集群状态。
cd /usr/local/mysql/bin
./ndb_mgm -e show
10.管理和维护命令:
cd /usr/local/mysql/bin
关闭mysql集群: pkill -9 ndbd_mgmd
启动mysql集群:./ndb_mgmd -f /var/lib/mysql-cluster/config.ini
启动SQL节点:./mysqld_safe --user=mysql & 或 service mysqld restart
查看mysql状态:./ndb_mgm -e show
11.测试集群
创建数据库表,简单查看配置效果:
由于为分布式集群,所以,在Mysql中创建的表的存储引擎必须修改为:NDB Cluster,否则数据不会同步到其他节点服务器上。
以下建表与插入数据在一台服务上操作,操作后直接查看其他节点中的mysql,可以看到数据库、表、数据都会同步的。
先创建个数据库mytest
CREATE TABLE tb_city(
id MEDIUMINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
NAME VARCHAR(20) NOT NULL DEFAULT '')
ENGINE = NDBCLUSTER DEFAULT CHARSET utf8mb4;
INSERT INTO tb_city VALUES(1, 'city1');
INSERT INTO tb_city VALUES(2, 'city2');
INSERT INTO tb_city VALUES(3, 'city3');
12.更改表的ENGINE
ALTER TABLE tablename ENGINE=NDBCLUSTER
示例:
ALTER TABLE tb_bank ENGINE=NDBCLUSTER
集群的每一张表必须修改ENGINE = NDBCLUSTER
13:jdbc连接
原先配置:jdbc:mysql://192.168.0.124:3306/palm_2_0_16
集群后配置:jdbc:mysql:loadbalance://192.168.0.124:3306,192.168.0.163:3306,192.168.0.173:3306/mysql?roundRobinLoadBalance=true