MySQL Innodb Cluster创建与初探
发布时间:2022-04-06 11:03:35 所属栏目: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的, 如果还有缺失的话, 就手动补上吧。 (编辑:聊城站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
站长推荐