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

MySQL5.7集群MGR启动报ERROR 3092 HY000 应当怎么办

发布时间:2022-01-13 14:24:14 所属栏目:MySql教程 来源:互联网
导读:MySQL5.7集群MGR启动报ERROR 3092 (HY000)该怎么办,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。 MySQL5.7版本MGR启动时报: ERROR 3092 (HY000): The server is not configured
     MySQL5.7集群MGR启动报ERROR 3092 (HY000)该怎么办,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
 
MySQL5.7版本MGR启动时报:
 
      ERROR 3092 (HY000): The server is not configured properly to be an active member of the group. Please see more details on error log.
 
查看告警日志:
 
2020-03-04T07:48:58.797180Z 574478 [Warning] Plugin group_replication reported: '[GCS] Automatically adding IPv4 localhost address to the whitelist. It is mandatory that it is
added.'2020-03-04T07:48:58.844857Z 574714 [ERROR] Slave SQL for channel 'group_replication_applier': Error 'This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its d
eclaration and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable)' on query. Default database: ''. Query: 'CREATE DEFINER=`root`@`192.168.187.%` FUNCTION `GetDistance`(`lat1` float,`lng1` float,`lat2` float,`lng2` float) RETURNS floatbegin
              DECLARE earth_padius float DEFAULT 6378.137;
              DECLARE radLat1      float DEFAULT 0;
              DECLARE radLat2      float DEFAULT 0;
              DECLARE a            float DEFAULT 0;
              DECLARE b            float DEFAULT 0;
              DECLARE s            float DEFAULT 0;
 
              set radLat1 = Radian(lat1);
              set radLat2 = Radian(lat2);
              set a = radLat1 - radLat2;
              set b = Radian(lng1) - Radian(lng2);
 
              set s = 2 *
       Asin(Sqrt(power(sin(a / 2), 2) +
                 cos(radLat1) * cos(radLat2) * power(sin(b / 2), 2)));
              set s = s * earth_padius;
              set s = Round(s * 10000) / 10000;
  re
2020-03-04T07:48:58.844919Z 574714 [Warning] Slave: This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled (you *mi
ght* want to use the less safe log_bin_trust_function_creators variable) Error_code: 14182020-03-04T07:48:58.844938Z 574714 [ERROR] Plugin group_replication reported: 'The applier thread execution was aborted. Unable to process more transactions, this member will n
ow leave the group.'2020-03-04T07:48:58.844963Z 574714 [ERROR] Error running query, slave SQL thread aborted. Fix the problem, and restart the slave SQL thread with "SLAVE START". We stopped at lo
g 'FIRST' position 0.2020-03-04T07:48:58.844984Z 574711 [ERROR] Plugin group_replication reported: 'Fatal error during execution on the Applier process of Group Replication. The server will now lea
ve the group.'2020-03-04T07:48:58.845030Z 574711 [ERROR] Plugin group_replication reported: '[GCS] The member is already leaving or joining a group.'
2020-03-04T07:48:58.845073Z 574711 [ERROR] Plugin group_replication reported: 'Unable to confirm whether the server has left the group or not. Check performance_schema.replicat
ion_group_members to check group membership information.'2020-03-04T07:49:03.586818Z 0 [ERROR] Plugin group_replication reported: 'There was a previous plugin error while the member joined the group. The member will now exit the grou
p.'2020-03-04T07:57:00.047106Z 574478 [Warning] Plugin group_replication reported: '[GCS] Automatically adding IPv4 localhost address to the whitelist. It is mandatory that it is
added.'2020-03-04T07:57:01.992027Z 575211 [Warning] Storing MySQL user name or password information in the master info repository is not secure and is therefore not recommended. Pleas
e consider using the USER and PASSWORD connection options for START SLAVE; see the 'START SLAVE Syntax' in the MySQL Manual for more information.
从监控告警日志内容可以看出来,是由于函数操作不符合规范造成的MGR集群掉线,具体日志描述如下:
 
This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled (you *mi
 
ght* want to use the less safe log_bin_trust_function_creators variable) Error_code: 1418
 
遇到这种问题可以从两个方面去解决。第一种方法就是开发人员按照规范创建符合标准的函数;第二种方法就是配置数据库参数,将log_bin_trust_function_creators配置为开启。
 
此处,开发人员也是选择了将log_bin_trust_function_creators参数配置为开启,但是在一个节点开启了,其他节点未开启,最终导致其他节点出现上述错误信息。
 
以下是部分处理过程,仅供参考:
 
mysql> select * from performance_schema.replication_group_members;
+---------------------------+--------------------------------------+-------------+-------------+--------------+
| CHANNEL_NAME              | MEMBER_ID                            | MEMBER_HOST | MEMBER_PORT | MEMBER_STATE |
+---------------------------+--------------------------------------+-------------+-------------+--------------+
| group_replication_applier | 48713421-9261-11e9-9799-005056851cf9 | db2    |        3306 | ERROR        |
+---------------------------+--------------------------------------+-------------+-------------+--------------+
1 row in set (0.00 sec)
 
mysql>
mysql>
mysql>
mysql> stop group_replication;
Query OK, 0 rows affected (1.01 sec)
 
mysql> start group_replication;
ERROR 3092 (HY000): The server is not configured properly to be an active member of the group. Please see more details on error log.
mysql> show variables like '%func%';
+---------------------------------+-------+
| Variable_name                   | Value |
+---------------------------------+-------+
| log_bin_trust_function_creators | OFF   |
+---------------------------------+-------+
1 row in set (0.01 sec)
 
mysql>
mysql>
mysql> set global log_bin_trust_function_creators=1;
Query OK, 0 rows affected (0.00 sec)
 
mysql> show variables like '%func%';
+---------------------------------+-------+
| Variable_name                   | Value |
+---------------------------------+-------+
| log_bin_trust_function_creators | ON    |
+---------------------------------+-------+
1 row in set (0.00 sec)
 
mysql>
mysql>
mysql> stop group_replication;
Query OK, 0 rows affected (0.00 sec)
 
mysql> start group_replication;
Query OK, 0 rows affected (2.90 sec)
 
mysql> select * from performance_schema.replication_group_members;
+---------------------------+--------------------------------------+-------------+-------------+--------------+
| CHANNEL_NAME              | MEMBER_ID                            | MEMBER_HOST | MEMBER_PORT | MEMBER_STATE |
+---------------------------+--------------------------------------+-------------+-------------+--------------+
| group_replication_applier | 2ff8ea98-9128-11e9-91dd-0819a62578bd | db1    |        3306 | ONLINE       |
| group_replication_applier | 48713421-9261-11e9-9799-005056851cf9 | db2    |        3306 | ONLINE       |
| group_replication_applier | 9c245a8c-9262-11e9-82d6-005056853a0e | db3    |        3306 | ONLINE       |
+---------------------------+--------------------------------------+-------------+-------------+--------------+
3 rows in set (0.00 sec)
 
mysql>
关于MySQL5.7集群MGR启动报ERROR 3092 (HY000)该怎么办问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助。

(编辑:聊城站长网)

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