CentOS 7.5下Mysql Cluster 7.6.12高可用集群搭建
CentOS 7.5下Mysql Cluster 7.6.12高可用集群搭建
节点规划
管理节点(1个): 10.106.224.181
Sql节点(2个): 10.106.224.182:3306 10.106.224.183:3306
数据节点(2个):10.106.224
CentOS 7.5下Mysql Cluster 7.6.12高可用集群搭建 节点规划 管理节点(1个): 10.106.224.181 Sql节点(2个): 10.106.224.182:3306 10.106.224.183:3306 数据节点(2个):10.106.224.182 10.106.224.183 安装mysql cluster 软件预先准备事项 Mysql cluster安装之前需要将mysql server 卸载掉mysql集群,如果mysql已经卸载,则直接安装mysqlcluster 1. 删除原先的mysql 或者 mariadb(三台都卸载) [root@hadoop01 ~]# rpm -qa|grep mariadb mariadb-libs-5.5.56-2.el7.x86_64 [root@hadoop01 ~]# rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64 [root@hadoop01 ~]# rpm -qa|grep mariadb 2. 下载mysql cluster ,这里我们采用7.6 版本 3. 假设每个节点都采用mysql用户来运行程序,先在各个节点上创建该用户 Groupadd mysql Useradd mysql –g mysql 安装 数据和mysql节点上的mysql数据库 4. Sql和数据节点10.106.224.182 10.106.224.183 下对mysql-cluster-gpl-7.6.12-el7-x86_64.tar.gz 进行解压 并安装mysql 解压 tar -zxvf mysql-cluster-gpl-7.6.12-el7-x86_64.tar.gz 将解压的文件拷贝到/usr/local/下 并重命名为mysql-cluster7.6 mv mysql-cluster-gpl-7.6.12-el7-x86_64 /usr/local/mysql-cluster7.6 在mysql-cluster7.6目录下创建data文件夹 mkdir data 创建my.cnf 文件并放到/etc 下 内容如下(注意server_id 要进行区分) [client] socket=/usr/local/mysql-cluster7.6/mysql.sock port=3306 [mysqld] basedir=/usr/local/mysql-cluster7.6 datadir=/usr/local/mysql-cluster7.6/data socket=/usr/local/mysql-cluster7.6/mysql.sock port=3306 symbolic-links=0 log-error=/usr/local/mysql-cluster7.6/mysqld.log pid-file=/usr/local/mysql-cluster7.6/mysqld.pid log_bin=mysql-bin server_id=1 default-storage-engine=innodb character_set_server=utf8 skip-grant-tables 将mysql-cluster7.6授权给mysql chown -R mysql:mysql mysql-cluster7.6 初始化数据库 cd /usr/local/mysql-cluster7.6/bin ./mysqld --initialize --user=mysql --basedir=/usr/local/mysql-cluster7.6 --datadir=/usr/local/mysql-cluster7.6/data 启动mysql ./mysqld_safe --user=mysql& 检查是否启动 ps -ef|grep mysql 将mysql路径添加到/etc/profile便于指令操作 source /etc/profile 设置登录密码 添加 skip-grant-tables 到/etc/my.cnf 中并重启mysql Kill 19417 (上图的mysql 进程是19417) ./mysqld_safe --user=mysql& mysql –u root update mysql.user set authentication_string=password('123456') where user='root'; flush privileges; exit mysql -u root –p 输入刚设置的密码123456 alter user user() identified by '123456'; 创建一个授权用户 grant all privileges on *.* to 'goodhope'@'%' identified by '123456' with grant option; flush privileges; exit 添加到服务中去 cp /usr/local/mysql-cluster7.6/support-files/mysql.server /etc/rc.d/init.d/mysqld chmod a+x /etc/rc.d/init.d/mysqld chkconfig --add mysqld systemctl enable mysqld systemctl status mysqld 管理节点上安装cluster 并初始化 5. 管理节点10.106.224.181 下对mysql-cluster-gpl-7.6.12-el7-x86_64.tar.gz 进行解压 tar -zxvf mysql-cluster-gpl-7.6.12-el7-x86_64.tar.gz 6. 10.106.224.181开始安装mysql cluster mkdir /usr/local/mysql-cluster7.6 mv mysql-cluster-gpl-7.6.12-el7-x86_64/* /usr/local/mysql-cluster7.6/ chown -R mysql:mysql /usr/local/mysql-cluster7.6 7. 创建config.ini 和 管理节点配置目录 文件目录(后面初始化管理节点会用到) 创建目录为管理节点初始化使用(放置集群二进制配置文件) mkdir /usr/local/mysql-cluster7.6/cluster-configdir chown mysql:mysql /usr/local/mysql-cluster7.6/cluster-configdir 创建文件目录 mkdir /usr/local/mysql-cluster7.6/data chown mysql:mysql /usr/local/mysql-cluster7.6/data 创建配置文件 cd /usr/local/mysql-cluster7.6/ vi config.ini 内容如下: [ndbd default] NoOfReplicas=2 #数据写入数量。2表示两份 DataMemory=512M #配置数据存储可使用的内存 IndexMemory=180M #索引给180M [ndb_mgmd] nodeid=1 HostName=10.106.224.181 #管理节点的IP地址 DataDir=/usr/local/mysql-cluster7.6/data #管理节点的日志 [ndbd] nodeid=2 HostName=10.106.224.182 DataDir=/usr/local/mysql-cluster7.6/data #mysql数据存储路径 [ndbd] nodeid=3 HostName=10.106.224.183 DataDir=/usr/local/mysql-cluster7.6/data [mysqld] nodeid=4 HostName=10.106.224.182 [mysqld] nodeid=5 HostName=10.106.224.183 8. 初始化管理节点 /usr/local/mysql-cluster7.6/bin/ndb_mgmd --initial --ndb-nodeid=1 -f /usr/local/mysql-cluster7.6/config.ini --configdir=/usr/local/mysql-cluster7.6/cluster-configdir (#--initial:第一次启动时加上,其它时候不要加,不然会数据清空,除非是在备份、恢复或配置变化后重启时) 返回结果如下: MySQL Cluster Management Server mysql-5.7.28 ndb-7.6.12 2019-12-11 16:42:36 [MgmtSrvr] WARNING -- at line 4: [DB] IndexMemory is deprecated, use Number bytes on each ndbd(DB) node allocated for storing indexes instead 该集群版本使用mysql是5.7.28 ,另外我们从返回警告信息看到IndexMemory 后续会针对各个db进行配置,而不是统一配置了,这个比较灵活了 查看二进制配置路径 cd cluster-configdir/ 9. 检查是否正常启动 ndb_mgmd ps -ef |grep ndb_mgmd 10. 编写启动sh脚本如下 vi mysql-cluster-start.sh ndb_mgmd --ndb-nodeid=1 -f /usr/local/mysql-cluster7.6/config.ini --configdir=/usr/local/mysql-cluster7.6/cluster-configdir 授权执行权限 chmod 700 mysql-cluster-start.sh 11. 进入bin目录查看集群状态 ./ndb_mgm Show 配置 数据和mysql节点 12. 修改10.106.224.182 和10.106.224.183 上my.conf 文件 [mysqld] ndbcluster #使用ndb集群引擎 ndb-connectstring=10.106.224.181 #指定管理集群的ip地址,多个以,分隔 default-storage-engine=ndbcluster #设置默认引擎 [mysql_cluster] ndb-connectstring=10.106.224.181 13. 启动ndbd /usr/local/mysql-cluster7.6/bin/ndbd --initial 注意第一初始化才需要 –initial, 后面启动去掉 –initial 就可以 ps -ef |grep ndbd 14. 登录10.106.224.181 查看集群状态 /usr/local/mysql-cluster7.6/bin/ndb_mgm show 关闭和开启集群 15. 关闭集群 先关闭管理节点(10.106.224.181) ndb_mgm -e shutdown 执行完成之后管理节点会关闭,数据节点也会关闭,但SQL节点不会,也就是数据库服务需要手动到每一台服务器上停止以保证数据同步) 到182 和183 上关闭mysql 16. 开启集群 顺序为 管理节点→数据节点→SQL节点。 10.106.224.181启动管理节点(使用我们创建的sh脚本) 182 和183 上启动数据节点 /usr/local/mysql-clester7.6/bin/ndbd systemctl start mysqld systemctl status mysqld 17. 登录管理器 查看集群状态 测试机器同步 18. 测试数据同步 182 上操作 create database test_cluster; use test_cluster; CREATE TABLE `test_cluster`.`new_table` ( `id` INT NOT NULL AUTO_INCREMENT, `namne` VARCHAR(50) NULL, PRIMARY KEY (`id`)); insert into new_table(namne) values('this is a test for cluster'); 183 上进行查询 select *from test_cluster.new_table 到此mysql 集群安装完成 (编辑:好传媒网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |