当前位置: 首页 > news >正文

网站的速度诊断怎么做做穿越火线的网站资料

网站的速度诊断怎么做,做穿越火线的网站资料,长宁品牌网站建设,绛县苗木网网站是由谁建设的起因 在GreatSQL社区上有一位用户提出了“手工构建MGR碰到的次节点一直处于recovering状态”#xff0c;经过排查后#xff0c;发现了是因为新密码验证插件caching_sha2_password导致的从节点一直无法连接主节点#xff0c;帖子地址#xff1a;(https://greatsql.cn/threa…起因 在GreatSQL社区上有一位用户提出了“手工构建MGR碰到的次节点一直处于recovering状态”经过排查后发现了是因为新密码验证插件caching_sha2_password导致的从节点一直无法连接主节点帖子地址(https://greatsql.cn/thread-420-2-1.html) 复现 环境介绍 本文验证环境以及本文所采用数据库为GreatSQL 8.0.32-24 $ cat /etc/system-release Red Hat Enterprise Linux Server release 7.9 (Maipo) $ uname -a Linux gip 3.10.0-1160.el7.x86_64 #1 SMP Tue Aug 18 14:50:17 EDT 2020 x86_64 x86_64 x86_64 GNU/Linux 部署准备 采用的是单机多实例的部署方式如何部署单机多实例可以前往(https://gitee.com/GreatSQL/GreatSQL-Manual/blob/master/6-oper-guide/6-6-multi-instances.md) IP端口角色172.17.139.773306mgr01172.17.139.773307mgr02 MGR有关配置参数 #mgr settings loose-plugin_load_add mysql_clone.so loose-plugin_load_add group_replication.so loose-group_replication_group_name aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaa1 loose-group_replication_group_seeds 172.17.139.77:33061,172.17.139.77:33071 loose-group_replication_start_on_boot ON loose-group_replication_bootstrap_group OFF loose-group_replication_exit_state_action READ_ONLY loose-group_replication_flow_control_mode DISABLED loose-group_replication_single_primary_mode ON loose-group_replication_communication_max_message_size 10M loose-group_replication_transaction_size_limit 3G loose-group_replication_arbitrator 0 loose-group_replication_single_primary_fast_mode 0 loose-group_replication_request_time_threshold 20000 report_host 172.17.139.77 MGR01节点配置如下 [mysqldmgr01] datadir/data/GreatSQL/mgr01 socket/data/GreatSQL/mgr01/mysql.sock port3306 server_id103306 log-error/data/GreatSQL/mgr01/error.log loose-group_replication_local_address 172.17.139.77:33061 MGR02节点配置如下 [mysqldmgr02] datadir/data/GreatSQL/mgr02 socket/data/GreatSQL/mgr02/mysql.sock port3307 server_id103317 log-error/data/GreatSQL/mgr02/error.log loose-group_replication_local_address 172.17.139.77:33071 启动MGR01实例、MGR02实例并修改密码 #启动两个实例 $ systemctl restart greatsqlmgr01 $ systemctl restart greatsqlmgr02 #获取初始化密码 $ grep root /data/GreatSQL/mgr01/error.log $ grep root /data/GreatSQL/mgr02/error.log #登录数据库并修改密码 $ mysql -S /data/GreatSQL/mgr01/mysql.sock -uroot -p greatsql alter user rootlocalhost identified by GreatSQL666; $ mysql -S /data/GreatSQL/mgr02/mysql.sock -uroot -p greatsql alter user rootlocalhost identified by GreatSQL666; 检查两个实例是否正确加载group_replicaiton 插件 greatsql show plugins; ----------------------------------------------------------------------------------------------- | Name | Status | Type | Library | License | ----------------------------------------------------------------------------------------------- | group_replication | ACTIVE | GROUP REPLICATION | group_replication.so | GPL | ----------------------------------------------------------------------------------------------- 没有加载的话可以手动加载这个plugin greatsql install plugin group_replication soname group_replication.so; 搭建MGR 接下来就可以手工搭建MGR流程如下可参考安装部署MGR集群 | 深入浅出MGR(https://gitee.com/GreatSQL/GreatSQL-Doc/blob/master/deep-dive-mgr/deep-dive-mgr-03.md) MGR01实例操作 greatsql set session sql_log_bin0; # 特别注意下面因为8.0.4版本开始使用的默认是“caching_sha2_password”所以这样创建会采用最新的身份认证插件 greatsql create user repl% identified by GreatSQL666; greatsql GRANT BACKUP_ADMIN, REPLICATION SLAVE ON *.* TO repl%; greatsql set session sql_log_bin1; greatsql CHANGE MASTER TO MASTER_USERrepl, MASTER_PASSWORDGreatSQL666 FOR CHANNEL group_replication_recovery; 接下来即可启动MGR集群 greatsql set global group_replication_bootstrap_groupON;greatsql start group_replication;greatsql select * from performance_schema.replication_group_members\G *************************** 1. row ***************************CHANNEL_NAME: group_replication_applierMEMBER_ID: 2920447e-35bf-11ee-89a5-00163e566da1MEMBER_HOST: 172.17.139.77MEMBER_PORT: 3306MEMBER_STATE: ONLINEMEMBER_ROLE: PRIMARYMEMBER_VERSION: 8.0.32 MEMBER_COMMUNICATION_STACK: XCom MGR02实例操作 greatsql set session sql_log_bin0; greatsql create user repl% identified by GreatSQL666; greatsql GRANT BACKUP_ADMIN, REPLICATION SLAVE ON *.* TO repl%; greatsql set session sql_log_bin1; greatsql CHANGE MASTER TO MASTER_USERrepl, MASTER_PASSWORDGreatSQL666 FOR CHANNEL group_replication_recovery; greatsql start group_replication; Query OK, 0 rows affected (5.39 sec) 此时创建的用户采用的都是caching_sha2_password身份认证插件 greatsql SELECT USER,PLUGIN FROM mysql.user ; ----------------------------------------- | USER | PLUGIN | ----------------------------------------- | repl | caching_sha2_password | | mysql.infoschema | caching_sha2_password | | mysql.session | caching_sha2_password | | mysql.sys | caching_sha2_password | | root | caching_sha2_password | ----------------------------------------- 虽然启动MGR成功但是查看下节点状态 greatsql select * from performance_schema.replication_group_members\G *************************** 1. row ***************************CHANNEL_NAME: group_replication_applierMEMBER_ID: 2920447e-35bf-11ee-89a5-00163e566da1MEMBER_HOST: 172.17.139.77MEMBER_PORT: 3306MEMBER_STATE: ONLINEMEMBER_ROLE: PRIMARYMEMBER_VERSION: 8.0.32 MEMBER_COMMUNICATION_STACK: XCom *************************** 2. row ***************************CHANNEL_NAME: group_replication_applierMEMBER_ID: 2a4f068b-35bf-11ee-9504-00163e566da1MEMBER_HOST: 172.17.139.77MEMBER_PORT: 3307MEMBER_STATE: RECOVERINGMEMBER_ROLE: SECONDARYMEMBER_VERSION: 8.0.32 MEMBER_COMMUNICATION_STACK: XCom 2 rows in set (0.00 sec) 此时节点一直处于RECOVERING状态查看mgr02实例的错误日志如下 2023-08-08T08:00:47.034870Z 42 [ERROR] [MY-010584] [Repl] Slave I/O for channel group_replication_recovery: error connecting to master repl172.17.139.77:3306 - retry-time: 60 retries: 1 message: Authentication plugin caching_sha2_password reported error: Authentication requires secure connection. Error_code: MY-002061 2023-08-08T08:00:47.037631Z 35 [ERROR] [MY-011582] [Repl] Plugin group_replication reported: There was an error when connecting to the donor server. Please check that group_replication_recovery channel credentials and all MEMBER_HOST column values of performance_schema.replication_group_members table are correct and DNS resolvable. 2023-08-08T08:00:47.037671Z 35 [ERROR] [MY-011583] [Repl] Plugin group_replication reported: For details please check performance_schema.replication_connection_status table and error log messages of Slave I/O for channel group_replication_recovery. 这是由于caching_sha2_password 是 MySQL 8.0.4 引入的一个新的身份验证插件caching_sha2_password 对密码安全性要求更高要求用户认证过程中在网络传输的密码是加密的所以导致的这个问题的出现caching_sha2_password的介绍可以看社区文章“浅谈 MySQL 新的身份验证插件 caching_sha2_password【微信导入、微信导入】” 解决方式 1、采用旧密码验证插件 旧的身份验证插件mysql_native_passwordmysql_native_password的特点是不需要加密的连接。该插件验证速度特别快但是不够安全只需要更改创建用户的语句 create user repl% identified with mysql_native_password by GreatSQL666; 旧密码验证插件容易被破解如果有 GreatSQL 服务要公网上使用建议还是尽量使用 caching_sha2_password作为认证插件 2、启用group_replication_recovery_get_public_key 设置 group_replication_recovery_get_public_keyON 可以确保从节点在连接到主节点时能够获取所需的公钥从而允许安全连接并成功进行身份验证避免了连接错误和身份验证问题。 手册中也有明确说明 18.6.3.1.1 Replication User With The Caching SHA-2 Authentication Plugin By default, users created in MySQL 8 use Section 6.4.1.2, “Caching SHA-2 Pluggable Authentication”. If the replication user you configure for distributed recovery uses the caching SHA-2 authentication plugin, and you are not using SSL for distributed recovery connections, RSA key-pairs are used for password exchange. For more information on RSA key-pairs, see Section 6.3.3, “Creating SSL and RSA Certificates and Keys”.In this situation, you can either copy the public key of the to the joining member, or configure the donors to provide the public key when requested. The more secure approach is to copy the public key of the replication user account to the joining member. Then you need to configure the group_replication_recovery_public_key_path system variable on the joining member with the path to the public key for the replication user account. rpl_userThe less secure approach is to set group_replication_recovery_get_public_keyON on donors so that they provide the public key of the replication user account to joining members. There is no way to verify the identity of a server, therefore only set group_replication_recovery_get_public_keyON when you are sure there is no risk of server identity being compromised, for example by a man-in-the-middle attack. 可以看到当确认环境安全以及没人任何人攻击集群时如果不配置ssl可以最低配置group_replication_recovery_get_public_keyON来在请求复制用户密钥时给公钥 3、为组复制通道启用SSL支持 以下操作方法仅使用于 GreatSQL/MySQL 8.0.27版本及以上 更安全的方法是将repl用户所需的公钥文件复制到joiner节点的Server所在主机中。然后在joiner节点的Server中配置group_replication_recovery_public_key_path系统变量指定rpl_user用户所需的公钥文件路径。 使用caching_sha2_password 插件身份验证会在数据目录下生成如下两个RSA文件 private_key.pem public_key.pem private_key.pemRSA私钥public_key.pem RSA公钥 对于 MGR 如果设置 group_replication_ssl_modeDISABLED 必须使用下面的变量来指定 RSA 公钥否则报错 group_replication_recovery_get_public_key 向服务端请求 RSA 公钥group_replication_recovery_public_key_path 指定本地 RSA 公钥文件 指定本地RSA公钥首先需要全局MGR配置开启SSL [mysqld] #开启use_ssl指定组成员之间的组复制分布式恢复连接是否应使用 SSL loose-group_replication_recovery_use_sslON 进入MGR01实例配置 greatsql set session sql_log_bin0; # 此时就可以使用“caching_sha2_password”身份认证插件 greatsql create user repl% identified by GreatSQL666; greatsql GRANT BACKUP_ADMIN, REPLICATION SLAVE ON *.* TO repl%; greatsql set session sql_log_bin1; greatsql CHANGE MASTER TO MASTER_USERrepl, MASTER_PASSWORDGreatSQL666 FOR CHANNEL group_replication_recovery; 启动MGR01实例的MGR集群 greatsql set global group_replication_bootstrap_groupON; greatsql start group_replication; greatsql select * from performance_schema.replication_group_members\G *************************** 1. row ***************************CHANNEL_NAME: group_replication_applierMEMBER_ID: 35b653d2-3658-11ee-93c9-00163e566da1MEMBER_HOST: 172.17.139.77MEMBER_PORT: 3306MEMBER_STATE: ONLINEMEMBER_ROLE: PRIMARYMEMBER_VERSION: 8.0.32 MEMBER_COMMUNICATION_STACK: XCom 启动成功后需要把MGR01节点的RSA公钥拷贝到MGR02节点上,因为MGR02也会生成此公钥所以最好创建一个文件夹 $ mkdir mgr01_key $ chown mysql:mysql mgr01_key/ # 将public_key.pem移动到MGR02 $ mv /data/GreatSQL/mgr01/public_key.pem /data/GreatSQL/mgr02/mgr01_key/ 当然如果有多个节点也需要把主节点的RSA公钥移动到各个节点上 MGR02节点操作 greatsql set session sql_log_bin0; greatsql create user repl% identified by GreatSQL666; greatsql GRANT BACKUP_ADMIN, REPLICATION SLAVE ON *.* TO repl%; greatsql set session sql_log_bin1; greatsql CHANGE MASTER TO MASTER_USERrepl, MASTER_PASSWORDGreatSQL666 FOR CHANNEL group_replication_recovery;# 此命令设置完成后最好写进my.cnf文件中持久化 greatsql set global group_replication_recovery_public_key_path /data/GreatSQL/mgr02/mgr01key/public_key.pem;greatsql start group_replication; greatsql select * from performance_schema.replication_group_members\G *************************** 1. row ***************************CHANNEL_NAME: group_replication_applierMEMBER_ID: 35b653d2-3658-11ee-93c9-00163e566da1MEMBER_HOST: 172.17.139.77MEMBER_PORT: 3306MEMBER_STATE: ONLINEMEMBER_ROLE: PRIMARYMEMBER_VERSION: 8.0.32 MEMBER_COMMUNICATION_STACK: XCom *************************** 2. row ***************************CHANNEL_NAME: group_replication_applierMEMBER_ID: aa031fb9-365a-11ee-9925-00163e566da1MEMBER_HOST: 172.17.139.77MEMBER_PORT: 3307MEMBER_STATE: ONLINEMEMBER_ROLE: SECONDARYMEMBER_VERSION: 8.0.32 MEMBER_COMMUNICATION_STACK: XCom 可以看到双节点ONLINE新加入的节点不会一直是RECOVERING状态 总结 新身份验证插件caching_sha2_password安全度相比其他的身份验证插件既解决安全性问题又解决性能问题建议使用新密码验证插件。 也感谢社区用户指出GreatSQL社区文档中的不足并给予用户金币奖励同时欢迎大家来GreatSQL社区捉虫~ Enjoy GreatSQL :) 关于 GreatSQL GreatSQL是适用于金融级应用的国内自主开源数据库具备高性能、高可靠、高易用性、高安全等多个核心特性可以作为MySQL或Percona Server的可选替换用于线上生产环境且完全免费并兼容MySQL或Percona Server。 相关链接 GreatSQL社区 Gitee GitHub Bilibili GreatSQL社区 社区有奖建议反馈 https://greatsql.cn/thread-54-1-1.html 社区博客有奖征稿详情 https://greatsql.cn/thread-100-1-1.html 对文章有疑问或者有独到见解都可以去社区官网提出或分享哦~ 技术交流群 微信QQ群 QQ群533341697 微信群添加GreatSQL社区助手微信号wanlidbc 好友待社区助手拉您进群。
http://www.w-s-a.com/news/956144/

相关文章:

  • 广州微网站建设平台阿里云国外服务器
  • 如何把做好的网站代码变成网页wordpress shortcode土豆 视频
  • 网站改版竞品分析怎么做中山网站建设文化价格
  • 玉林市网站开发公司电话做网站空间 阿里云
  • 南充做网站略奥网络免费的正能量视频素材网站
  • 电子商务网站开发的基本原则汕头网站制作流程
  • 网站访问量突然增加合肥宣传片制作公司六维时空
  • 建设购物网站流程图怎么找网站
  • 阿里云部署多个网站制作小程序网站源码
  • 博罗东莞网站建设网站免费源代码
  • 网站规划与设计范文桂平网站建设
  • 网站备案号密码wordpress邮箱发送信息错误
  • 模板的网站都有哪些关键词搜索工具爱站网
  • 鲜花网站建设的利息分析企业网站建设方案书
  • 深圳网站平台石家庄做商城网站的公司
  • 微网站营销是什么私人订制网站有哪些
  • 浙江建设工程合同备案网站新手做网站教程
  • 网站优化关键词排名自己怎么做wordpress安装主题失败
  • 成都建设银行招聘网站网站的切换语言都是怎么做的
  • 网站网业设计wordpress 很差
  • 网站开发软件著作权归谁网站悬浮窗广告
  • 如何提升网站alexa排名货运网站源码
  • 如何看自己网站流量梧州网站设计理念
  • 商城网站建设特点有哪些信息门户
  • 弄一个网站临沂有哪几家做网站的
  • 广州个人网站制作公司网站建设公司价
  • 免费建设网站赚钱小程序开发文档pdf
  • ucenter 整合两个数据库网站网店推广技巧
  • 网站优化排名提升百度wap
  • 八里河风景区网站建设内容摘要网站开发基础学习