mysql router 8.0.11_MySQL Router8

MySQL Router8是一款轻量级的中间件,主要用来实现高可用和扩展性的功能,在中间的访问协议和MySQL一致,不需要做任何的修改,提供了使用fabric可用的方式,有需要的朋友可以来本站下载!

软件特点

优点:

上手快,很容易配置

较为稳定,性能中没有遇到什么问题

插件式的架构允许用户进行额外功能的扩展

缺点:

仅支持简单的负载均衡功能

高可用功能有待进一步测试

虽然支持Fabric元数据,但是不支持分库分表(不得不说是一个遗憾)

白名单,SQL统计功能,防火墙功能缺失

需要gcc 4.8以上版本支持,老系统编译比较麻烦些

MySQL Router安装部署教程

----------------------- 复制创建及配置主要步骤 -----------------------------------------

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 = mysql

port = 3306

server_id = 13306

character_set_server = utf8

socket = /tmp/mysql3306.sock

pid-file = /tmp/mysql3306.pid

log-bin = /mysql/3306/logs/bin_log

relay-log = /mysql/3306/logs/relay_log

log-error = /mysql/3306/logs/mysql_error.log

explicit_defaults_for_timestamp = true

expire_logs_days = 10

max_binlog_size = 100M

binlog-do-db = testdb #复制数据库名称

binlog-ignore-db = mysql

--MySQLDB2 节点 /mysql/3306/my.cnf

[client]

default_character_set = utf8

port = 3306

socket = /tmp/mysql3306.sock

[mysqld]

basedir = /mysql/3306

datadir = /mysql/3306/data

user = mysql

port = 3306

server_id = 23306

character_set_server = utf8

socket = /tmp/mysql3306.sock

pid-file = /tmp/mysql3306.pid

log-bin = /mysql/3306/logs/bin_log

relay-log = /mysql/3306/logs/relay_log

log-error = /mysql/3306/logs/mysql_error.log

explicit_defaults_for_timestamp = true

expire_logs_days = 10

max_binlog_size = 100M

--MySQLDB3 节点 /mysql/3306/my.cnf

[client]

default_character_set = utf8

port = 3306

socket = /tmp/mysql3306.sock

[mysqld]

basedir = /mysql/3306

datadir = /mysql/3306/data

user = mysql

port = 3306

server_id = 33306

character_set_server = utf8

socket = /tmp/mysql3306.sock

pid-file = /tmp/mysql3306.pid

log-bin = /mysql/3306/logs/bin_log

relay-log = /mysql/3306/logs/relay_log

log-error = /mysql/3306/logs/mysql_error.log

explicit_defaults_for_timestamp = true

expire_logs_days = 10

max_binlog_size = 100M

8、 清理配置参数文件

在Linux平台下,mysql程序默认会按照以下顺序扫描路径寻找配置文件

/etc/my.cnf

/etc/mysql/my.cnf

SYSCONFDIR/my.cnf #通过CMake源代码编译时指定的SYSCONFDIR的参数指定的路径

$MYSQL_HOME/my.cnf #MYSQL_HOME环境变量所在路径,即mysql安装路径(basedir)

~/.my.cnf #~表示到当更前用户根目录下寻找

通过命令 find / -iname my.cnf 查询配置文件的存在性,仅保留 MYSQL_HOME/my.cnf 配置文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值