Hadoop系列之mysql集群版安装(十)

图文链接
详细操作链接http://note.youdao.com/noteshare?id=ae0237fdeb6e7f16471d095f6edce4c0

集群整体架构搭建
链接:https://blog.csdn.net/qq_40402685/article/details/84173830

实验目的

要求 ☛完成mysql的集群版的安装
☛MySQL集群的相关服务进程能够正常启动
☛MySQL集群的SQL服务能够作为系统服务开机自启动
☛MySQL客户端能够正常连接MySQL集群的SQL服务
☛MySQL集群的SQL服务能够远程连接访问
☛创建表,查询数据等数据库操作能够正常进行
☛MySQL集群的数据库数据能够在多个SQL服务节点之间实现同步
实验环境
☛五台独立虚拟机
☛主机之间有有效的网络连接每台主机内存2G以上,磁盘50G
☛所有主机上已安装CentOS 7操作系统
☛所有主机已完成静态网络地址,主机名主机地址映射的配置

软件版本:
★ mysql-cluster-gpl-7.5.7-linux-glibc2.12-x86_64.tar.gz
依赖软件:
★ libaio-0.3.109-13.el7.x86_64.rpm

集群规划:
MySQL数据库的集群版本有管理节点、数据服务节点、SQL服务节点总共3类服务节点,集群中要求至少一台单独的主机作为管理节点,而集群模式需要满足数据有备份和数据处理能够分布并行的基本要求,所以需要两台或以上的主机作为数据服务节点以及两台或以上的主机作为SQL服务节点。
具体规划如下:
主机名 IP地址 服务名称
cgt-01 192.168.10.111 MC管理节点
cgt-02 192.168.10.112 MC数据服务节点
cgt-03 192.168.10.113 MC数据服务节点
cgt-04 192.168.10.114 MC SQL服务节点
cgt-05 192.168.10.115 MC SQL服务节点

简要说明

MySQL集群是一个无共享的(shared-nothing)、分布式节点架构的存储方案,其目的是提供容错性和高性能。
“NDB"是一种“内存中”的存储引擎,也是事务型存储引擎,具备ACID属性。
☛管理(MGM)节点:负责管理My0SQL Cluster内的其他节点,如提供配置数据、启动并停止节点、运行备份等。由于这类节点负责管理其他节点的配置,应在启动其他节点之前首先启动这类节点。MGM节点是用命令“ndb_ mgmd"启动的。
☛数据节点:用于保存Cluster的数据。 数据节点的数目与副本的数目相关,是片段的倍数。数据节点是用命令“ndbd"启动的。
☛SQL节点:用来访问Cluster数据的节点。也就是Mysq服务, 可以使用service mysqld start启动。

MYSQL集群的优缺点:
优点: ①99.999%的高可用性 ②快速的自动失效切换
③灵活的分布式体系结构,没有单点故障
④高吞吐量和低延迟 ⑤可扩展性强,支持在线扩容
缺点: ①存在很多限制,比如:不支持外键
②部署、管理、配置很复杂 ③占用磁盘空间大,内存大
④备份和恢复不方便 ⑤重启时,数据节点将数据load到内存需很长时间

实验内容与完成情况 一、MySQL集群版按住阿奴个环境配置
★MySQL集群版安装过程的所有操作步骤都需要使用root用户进行。
★此项操作在集群内所有主机进行
1、#mkdir setups
首先我们将软件包上传到root用户家目录新建的setups下。
命令:
匹配MySQL关键字查询包
#rpm -qa |grep mysql
列出本机yum方式安装的MySQL软件(如果没有则不进行删除)
#yum list installed | grep mysql
将已经安装的MySQL软件删除,源码安装删除方法。
#rpm -e --nodeps 软件包名
Yum安装删除方法
#yum -y remove mysql

使用xftp工具上传
软件名称:
★ mysql-cluster-gpl-7.5.7-linux-glibc2.12-x86_64.tar.gz
依赖软件:
★ libaio-0.3.109-13.el7.x86_64.rpm

2、检查是否已经安装了MariaDB软件,该数据库软件是CentOs 7.2默认自带的数据库,会与MySQL软件的数据库内核产生冲突,在安装MySQL数据库之前需要将其删除
#rpm -qa | grep mariadb
将已经安装的MariaDB软件删除,rpm源码安装删除方法
#rpm -e --nodeps mariadb-libs-5.5.52-1.el7.x86_64
检查本机是否yum方式安装了libaio软件,MySQL数据库的安装需要依赖于该软件。
#rpm -qa | grep libaio
检查mysq|用户组是否存在
#cat /etc/group | grep mysql
若不存在则使用此命令创建mysqI用户组。
#groupadd mysql
检查mysq|用户是否存在,
#cat /etc/passwd | grep mysql
若不存在则使用此命令创建mysqI用户并加入到mysql用户组中,选项“-r”表示该用户是内部用户,不允许外部登录。
#useradd -r -g mysql mysql

3、查看当前系统中selinux服务的运行状态,需要进行永久关闭
#sestatus -v

#vi /etc/selinux/config
找到配置项“selinux”所在行,将其改为以下内容:
SELINUX=disabled
#reboot

一、MySQL集群版基本安装配置
★此项操作在集群内所有主机进行
MySQL Cluster软件包“mysl-cluster-gpl-7.5.7-linux-glibc2.12-x86_ 64.tar.gz" 我们已提前上传于用户家目录的“setups"目录下。
1、创建用于存放MySQL相关文件的目录
#mkdir /mysql

将软件包解压到“mysql"目录下
#tar -xzf ~/setups/mysql-cluster-gpl-7.5.7-linux-glibc2.12-x86_64.tar.gz

2、进入系统的“/usr/local”目录
#cd /usr/local
在该目录下创建一个名为“mysql”的链接指向MySQL Cluster所在的目录,
MySQL源路径以MySQL Cluster软件包实际解压解包路径为准。
#ln -s /mysql//mysql-cluster-gpl-7.5.7-linux-glibc2.12-x86_64 mysql

创建存放MySQL数据库数据的目录
#mkdir data

更改数据目录的权限设置
#chmod 770 data
更改当前“mysql”目录的所属用户和所属组
#chown -R mysql .
#chgrp -R mysql .
配置mysql相关的环境变量,修改系统的配置文件
#vi /etc/profile

使新配置的环境变量立即生效
#source /etc/profile
查看新添加和修改的环境变量是否设置成功,环境变量值是否正确。
#echo $MYSQL_CLUSTER_HOME
#echo $PATH

三、配置管理节点cgt-01
1、进入MYSQL Cluster软件所在目录
#cd /usr/local/mysql
创建存放MYSQL Cluster数据的目录
更改“mysql-cluster”目录的所属用户和所属组
#chown -R mysql mysql-cluster
#chgrp -R mysql mysql-cluster
创建用于存放MYSQL cluster管理节点配置文件的目录
#mkdir etc
创建MYSQL Cluster管理节点的配置文件
#touch config.ini

对配置文件进行修改
#vi config.ini

更改当前“etc”目录的所属用户和所属组
#chown -R mysql .
#chgrp -R mysql .
启动mysql cluster的管理节点
#ndb_mgmd -f /usr/local/mysql/etc/config.ini --initial
(首次启动或配置修改之后启动需要添加参数–initial,正常启动时不需添加)

查看系统进程信息,若存在信息中包含“ndb_ mgmd"关键字的进程则表示MySQL Cluster的管理节点启动成功。
#ps -ef | grep ndb_mgmd
进入MySQL Cluster管理节点的控制台
#ndb_mgm
在控制台中使用命令“show”可以查看节点状况。

show

四、配置数据服务节点cgt-02,cgt-03
1、进入系统配置文件所在目录
#cd /etc
创建mysql cluster数据服务节点的配置文件
#touch my.cnf

对配置文件进行修改
#vi my.cnf

2、启动数据服务节点(首次启动或配置修改之后启动需要添加参数–initial,正常启动时不需添加)
#ndbd --initial
查看系统进程信息,若存在信息中包含“ndbd”关键字的进程则表示MySQLCluster的数据服务节点启动成功。
#ps -ef|grep ndbd

在管理节点主机上使用命令“ndb_ mgm’进入MySQL Cluster管理节点的控制台。
#ndb_mgm
在控制台中使用命令“show”可以查看节点状况,若有相应数据服务节点的连接信息,则表示数据服务节点启动并连接成功。

show

五、配置SQL服务节点cgt-04,cgt-05
1、进入系统配置文件所在目录
#cd /etc
创建MYSQL cluster数据服务节点的配置文件
#touch my.cnf
对配置文件进行修改
#vi my.cnf

2、对MySQL数据库的安装进行初始化,执行该命令后会有些提示信息, 特别注意最后一行的“[Note]”相关信息,信息内容如下:
[Note] A temporary password is
generated for root@localhost:XXXXXXXXXXXXXX
信息未尾的“XXXXXXXXXXXX”是安装程序随机生成的初始密码,在首次以root用户登录数据库时需要使用,非常重要,必须记录。
#mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
将MySQL加入到系统的可控制启动服务目录内,并将服务名命名为“mysql”。
#cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
启动SQL服务节点
#service mysql start

3、查看系统进程信息,若存在信息中包含“mysql”关键字的进程则表示MySQLCluster的SQL服务节点启动成功。
#ps -ef | grep mysql

在管理节点主机上使用命令“ndb. mgm”进入MySQL Cluster管理节点的控制台
#ndb_mgm
在控制台中使用命令“show"可以查看节点状况,若有相应SQL服务节点的连接信息则表示SQL服务节点启动并连接成功。

show

4、★下列操作在SQL服务节点主机继续操作。
登录MySQL数据库,会提示输入密码,该密码为之前进行安装初始化时所显示的初始密码,正确输入密码成功登录MySQL数据库之后会进入MySQL的控制台。
#mysql -u root -p
在MySQL控制台使用此命令,重新设置数据库的“root"用户的登录密码,其中“mysqlabc"部分为自定义的新密码。
#SET PASSWORD=PASSWORD(‘123456’)

5、在MySQL控制台使用命令“USE mysql;"切换到“mysql"数据库

USE mysql;

在MySQL控制台使用此命令,修改数据库的root用户所接收请求来源的范围。允许远程登录

UPDATE user SET host=‘%’WHERE user=‘root’;

查看数据库的host信息

select host from user where user =‘root’;

在MySQL控制台使用此命令,刷新数据库的权限信息使新配置的权限生效。

FLUSH PRIVILEGES;

添加系统防火墙端口策略,对外开启mysql所使用的端口“3306”
#firewall -cmd --zone=public --add-port=3306/tcp --permanent
重启系统防火墙服务,使新添加的端口策略生效。
六、mysql集群版验证
1、在任意一台SQL服务节点主机上使用命令“mysql-u root-p"登录到MySQL数据库,会提示输入密码,正确输入密码成功登录MySQL数据库之后会进入MySQL的控制台。
#mysql -u root -p

在MySQL控制台使用命令“CREATE DATABASE test;" 创建数据库"test"

CREATE DATABASE test;

2、在任意一台SQL服务节点主机上使用命令“mysql-u root-p"登录到MySQL数据库,会提示输入密码,正确输入密码成功登录MySQL数据库之后会进入MySQL的控制台。
#mysql -u root -p
在MySQL控制台使用命令“SHOW
DATABASES;”显示数据库列表,若存在名为“test”的数据库,则表示集群同步数据成功。

SHOW DATABASES;

(可以使用命令"ssh 目标主机名或P地址”远程登录到集群中其它SQU服务节点主机进行操作,完成所有操作后使用命令"logout"退出当前登录。)

3、在任意一台集群主机上执行
#ndb_mgm -e show

七、mysql集群测试
Test1
首先,进入MySQL的控制台。
#mysql -u root -p
1、现在我们在其中一个SQL节点上进行相关数据库的创建,然后到另外一个SQL节点上看看数据是否同步。
在SQL节点(cgt-04)上执行:
mysql> create database aa;
mysql> use aa;
mysql> CREATE TABLE ctest2(i INT) ENGINE=NDB;
mysql> INSERT INTO ctest2 () VALUES (1);
mysql> SELECT *FROM ctest2;

2、然后在SQL节点2(cgt-05)查看数据是否同步

Test2
1、关闭一个数据节点,在另外一个节点输入,开启关闭的节点,看数据是否同步过来。

2、SQL节点2(cgt-05)上查看

出现的问题与解决方案
Error1:(解压时在tar 后面的参数误写为 -xvf页面出现了解压产生的详细文件)

解决方式:删除已经解压的文件,更改参数为-xvf重新解压。

Error2:解压解包时,对5个节点同时进行操作,导致cpu负载,解压终止。

解决方式:将未解压完整的文件进行删除,为节点增加内存,单独进行解压。

你可能感兴趣的:(云存储)