加入收藏 | 设为首页 | 会员中心 | 我要投稿 大连站长网 (https://www.0411zz.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

MySQL Innodb Cluster创建与初探

发布时间:2022-04-06 10:57:42 所属栏目:MySql教程 来源:互联网
导读:场景: 有些空余时间了, 想要测试一下Group Replication与MySQL Router~(≧▽≦)/~ 结论: 可用性方面不错; 性能方面其实还不错, 不过写入能力还是老问题, 读多写少的业务可以关注一下Innodb Cluster; 搭建过程: 1. 官方源直接安装MySQL相关的所有包, apt-g
      场景:
      有些空余时间了, 想要测试一下Group Replication与MySQL Router~(≧▽≦)/~
 
      结论:
      可用性方面不错;
     性能方面其实还不错, 不过写入能力还是老问题, 读多写少的业务可以关注一下Innodb Cluster;
 
      搭建过程:
 
1. 官方源直接安装MySQL相关的所有包, apt-get/yum
 
2. MySQL的配置, 除了常规配置以外, 推荐加上如下的部分, loose开头的参数表示如果不存在group_replication插件, 则忽略这些配置
 
点击(此处)折叠或打开
 
report_host = 192.168.0.100                      ##GR插件会用这个report_host来标记Group中的每个MySQL实例, 确保每个MySQL实例的hostname不一样, 或者这个report_host不一样
log_bin = /home/mysql/mysql-binlog               ##必须开启
log_slave_updates = ON                           ##必须开启
master_info_repository = TABLE                   ##必须使用Table
relay_log_info_repository = TABLE                ##必须使用Table
gtid_mode = ON                                   ##必须开启GTID
enforce_gtid_consistency = ON                    ##必须开启
slave_preserve_commit_order = ON                 ##确保GR_applier按照一致的顺序复现事务
binlog_checksum = NONE                           ##必须设置为NONE
transaction_write_set_extraction=XXHASH64        ##必须设置为XXHASH64
 
3. 启动所有的MySQL实例, 并安装插件
 
点击(此处)折叠或打开
 
INSTALL PLUGIN group_replication SONAME 'group_replication.so'
 
4. 在mysql中创建用户temp, 测试图方便, 用ALL on *.*就行, 在官方文档中, 有列出这个用户需要的具体权限, 如下
 
点击(此处)折叠或打开
 
GRANT ALL PRIVILEGES ON mysql_innodb_cluster_metadata.* TO your_user@'%' WITH GRANT OPTION;
GRANT RELOAD, SHUTDOWN, PROCESS, FILE, SUPER, REPLICATION SLAVE, REPLICATION CLIENT,
CREATE USER ON *.* TO your_user@'%' WITH GRANT OPTION;
GRANT SELECT ON performance_schema.* TO your_user@'%' WITH GRANT OPTION;
GRANT SELECT ON *.* TO your_user@'%' WITH GRANT OPTION;
GRANT SELECT, INSERT, UPDATE, DELETE ON mysql.* TO your_user@'%' WITH GRANT OPTION
 
还有一个需要注意的是: 官方推荐修改/etc/hosts, 实测中, 把localhost指向内网IP, 或者是创建temp@localhost的同权限用户也行, 官方的工具会用到@localhost的登录方式;
 
PS: with grant option很重要, 因为工具会新建一个mysql_route_xxxx用户, 以及存储meta的新数据库;
 
4. 在Group Primary的机器上启动MySQL shell, 这个很重要, 因为第3点中提到的:  官方的工具会用到@localhost的登录方式
PS: 推荐用mysqlsh --log-level=DEBUG3来启动mysql shell, 且不要关闭wizard;
 
5. 进入MySQL shell以后, 可以选择使用java script还是python, 这里比较习惯python, 就用python的方式, 和js基本没区别;
 
6. dba.help()命令能看到支持的所有命令, 搭建过程中主要用到的主要有这几个:
    check_instance_configuration :  检查实例的参数配置是否符合搭建Group的要求
    configure_local_instance :          持久化实例的配置参数到配置文件
    create_cluster :                            创建innodb cluster
    get_cluster :                                 获取这个实例所属innodb cluster的信息
    connect 用户名@ip:port:  登录到某个实例, 一般为本机
 
7. 使用dba.check_instance_configuration('temp@192.168.0.100:3306')来检测配置参数, 按照第一步设置之后, 应该是直接返回OK的, 如果还有缺失的话, 就手动补上吧。

(编辑:大连站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!