4个节点
1、MySQLDB1 192.168.1.41 (MySQL 主节点)
2、MySQLDB2 192.168.1.42 (MySQL从节点)
3、MySQLDB3 192.168.1.43 (MySQL从节点)
4、MySQLRouter 192.168.1.47 (MySQLRouter服务节点)
软件版本说明:
1、操作系统 CentOS6.6_x86_64
2、MySQLServer 5.7.16
3、MySQLRouter 2.0.4
一、部署MySQL主从复制
----------------------- 复制创建及配置主要步骤 -----------------------------------------
1、Master 端启用二进制日志,指定唯一的 server_id
2、Slave 端配置唯一的 server_id
3、Master 端创建复制专用帐号
4、记录 Master 端日志信息并创建镜像
5、配置 Slave 端的连接
-------------------------------------------------------------------------------------------
1、系统平台: CentOS 6.6 (64位)
2、软件版本:mysql-5.7.16-linux-glibc2.5-x86_64.tar.gz
3、为了模拟现实环境情况做如下前提条件假设:
1)、在搭建Master和Salve1时为一个全新的环境,即主数据库中无任何数据,Master和Slave1均为新环境部署
2)、在现有复制环境(Master+Slave1)中新增一个Slave2节点,现有复制环境中已有数据存在和修改过程执行
3)、Master节点的端口为3306,Slave1节点端口为3306,Slave2节点端口为3306
4)、为了部署方便,安装包使用二进制程序进行部署
----------------------------------------- 部署实现过程 -----------------------------------------------
1、用户及相关目录创建
--MySQLDB1 节点
[root@mysqldb1 ~]# groupadd mysql
[root@mysqldb1 ~]# useradd mysql -g mysql
[root@mysqldb1 ~]# mkdir /mysql
[root@mysqldb1 ~]# mkdir /mytmp
[root@mysqldb1 ~]# passwd mysql
--MySQLDB2 节点
[root@mysqldb2 ~]# groupadd mysql
[root@mysqldb2 ~]# useradd mysql -g mysql
[root@mysqldb2 ~]# mkdir /mysql
[root@mysqldb2 ~]# mkdir /mytmp
[root@mysqldb2 ~]# passwd mysql
--MySQLDB3 节点
[root@mysqldb3 ~]# groupadd mysql
[root@mysqldb3 ~]# useradd mysql -g mysql
[root@mysqldb3 ~]# mkdir /mysql
[root@mysqldb3 ~]# mkdir /mytmp
[root@mysqldb3 ~]# passwd mysql
2、设置用户操作系统资源的限制
--以避免在启动mysql服务是会报:
2017-04-11 17:27:03 3175 [Warning] Buffered warning: Changed limits: max_open_files: 1024 (requested 5000)
2017-04-11 17:27:03 3175 [Warning] Buffered warning: Changed limits: table_open_cache: 431 (requested 2000)
之类的警告信息
[root@mysqla ~]# vi /etc/security/limits.conf
在文件的最后添加如下内容
mysql soft nproc 2047
mysql hard nproc 16384
mysql soft nofile 1024
mysql hard nofile 65535
3、解压上传的二进制安装包程序并复制到目标目录下
--MySQLDB1 节点
[root@mysqldb1 mytmp]# tar -xzvf mysql-5.7.16-linux-glibc2.5-x86_64.tar.gz
[root@mysqldb1 mytmp]# mv mysql-5.7.16-linux-glibc2.5-x86_64 /mysql/3306
--MySQLDB2 节点
[root@mysqldb2 mytmp]# tar -xzvf mysql-5.7.16-linux-glibc2.5-x86_64.tar.gz
[root@mysqldb2 mytmp]# mv mysql-5.7.16-linux-glibc2.5-x86_64 /mysql/3306
--MySQLDB3 节点
[root@mysqldb3 mytmp]# tar -xzvf mysql-5.7.16-linux-glibc2.5-x86_64.tar.gz
[root@mysqldb3 mytmp]# mv mysql-5.7.16-linux-glibc2.5-x86_64 /mysql/3306
4、便于方便管理创建单独的日志文件存放目录
--MySQLDB1 节点
[root@mysqldb1 3306]# mkdir logs
--MySQLDB2 节点
[root@mysqldb2 3306]# mkdir logs
--MySQLDB3 节点
[root@mysqldb3 3306]# mkdir logs
5、目录权限修改
--MySQLDB1 节点
[root@mysdb1 ~]# chown -R mysql:mysql /mysql
--MySQLDB2 节点
[root@mysqldb2 ~]# chown -R mysql:mysql /mysql
--MySQLDB3 节点
[root@mysqldb3 ~]# chown -R mysql:mysql /mysql
6、数据库初始化安装
--MySQLDB1 节点
[root@mysqldb1 ~]# su - mysql
[mysql@mysqldb1 ~]$ cd /mysql/3306
[mysql@mysqldb1 3306]$ ./bin/mysqld --initialize --user=mysql --basedir=/mysql/3306 --datadir=/mysql/3306/data
--MySQLDB2 节点
[root@mysqldb2 ~]# su - mysql
[mysql@mysqldb2 ~]$ cd /mysql/3306
[mysql@mysqldb2 3306]$ ./bin/mysqld --initialize --user=mysql --basedir=/mysql/3306 --datadir=/mysql/3306/data
--MySQLDB3 节点
[root@mysqldb3 ~]# su - mysql
[mysql@mysqldb3 ~]$ cd /mysql/3306
[mysql@mysqldb3 3306]$ ./bin/mysqld --initialize --user=mysql --basedir=/mysql/3306 --datadir=/mysql/3306/data
注:1、数据库初始化的命令与5.6版本有所不同
2、数据库初始化完后,会自动为 root 用户生成一个密码,记住该密码,
不过该密码很快很过期,所以需要在配置文件添加 skip-grant-tables 来启动数据库实例
3、安装aio依赖包: yum install libaio*
7、参数文件配置
--MySQLDB1 节点 /mysql/3306/my.cnf
[client]
default_character_set = utf8
port = 3306
socket = /tmp/mysql3306.sock
[mysqld]
basedir = /mysql/3306
datadir = /mysql/3306/data
user &