GreatSQL社区

搜索

[已解决] 启动集群时找不到group_replication插件

1638 7 2025-3-13 18:36
本帖最后由 zkycaesar 于 2025-3-14 09:57 编辑

我在openEuler上面容器部署GreatSql,使用的镜像是ccr.ccs.tencentyun.com/greatsql/greatsql:8.0.32-26。

启动容器后,我按照文档MGR安装部署的步骤启动集群。当执行到c.addInstance()添加另一个实例时,我选择Clone,然后就报错:
  1. ERROR: error installing plugin 'group_replication': 10.18.111.75:3306: Can't open shared library '/usr/lib/plugin/group_replication.so' (errno: 13 /usr/lib/plugin/group_replication.so: cannot open shared object file: No such file or directory)
  2. Cluster.addInstance: error installing plugin 'group_replication': 10.18.111.75:3306: Can't open shared library '/usr/lib/plugin/group_replication.so' (errno: 13 /usr/lib/plugin/group_replication.so: cannot open shared object file: No such file or directory) (RuntimeError)
复制代码
我看了下确实没有/usr/lib/plugin/这个目录。
我的my.cnf配置文件用的默认配置,几乎没有动过:
  1. #
  2. # my.cnf example for GreatSQL 8.0.32-26
  3. #
  4. # 下面参数选项设置仅作为参考,假定服务器配置为128C256G
  5. #
  6. [client]
  7. socket    = /data/GreatSQL/mysql.sock

  8. [mysql]
  9. loose-skip-binary-as-hex
  10. prompt = "(\\D)[\\u@GreatSQL][\\d]> "
  11. no-auto-rehash

  12. [mysqld]
  13. user    = mysql
  14. port    = 3306
  15. server_id = 101811172
  16. basedir = /usr/
  17. datadir    = /data/GreatSQL
  18. socket    = /data/GreatSQL/mysql.sock
  19. pid-file = mysql.pid
  20. character-set-server = UTF8MB4
  21. skip_name_resolve = ON
  22. default_time_zone = "+8:00"
  23. bind_address = "0.0.0.0"
  24. secure_file_priv = /data/GreatSQL
  25. lower_case_table_names = 0

  26. # Performance
  27. lock_wait_timeout = 3600
  28. open_files_limit    = 65535
  29. back_log = 1024
  30. max_connections = 512
  31. max_connect_errors = 1000000
  32. table_open_cache = 1024
  33. table_definition_cache = 1024
  34. sort_buffer_size = 4M
  35. join_buffer_size = 4M
  36. read_buffer_size = 8M
  37. read_rnd_buffer_size = 4M
  38. bulk_insert_buffer_size = 64M
  39. thread_cache_size = 768
  40. interactive_timeout = 600
  41. wait_timeout = 600
  42. tmp_table_size = 32M
  43. max_heap_table_size = 32M
  44. max_allowed_packet = 64M
  45. net_buffer_shrink_interval = 180
  46. sql_generate_invisible_primary_key = ON
  47. loose-lock_ddl_polling_mode = ON
  48. loose-lock_ddl_polling_runtime = 200

  49. # Logs
  50. log_timestamps = SYSTEM
  51. log_error = error.log
  52. log_error_verbosity = 3
  53. slow_query_log = ON
  54. log_slow_extra = ON
  55. slow_query_log_file = slow.log
  56. long_query_time = 0.01
  57. log_queries_not_using_indexes = ON
  58. log_throttle_queries_not_using_indexes = 60
  59. min_examined_row_limit = 100
  60. log_slow_admin_statements = ON
  61. log_slow_replica_statements = ON
  62. log_slow_verbosity = FULL
  63. log_bin = binlog
  64. binlog_format = ROW
  65. sync_binlog = 1
  66. binlog_cache_size = 4M
  67. max_binlog_cache_size = 6G
  68. max_binlog_size = 1G
  69. binlog_space_limit = 500G
  70. binlog_rows_query_log_events = ON
  71. binlog_expire_logs_seconds = 604800
  72. binlog_checksum = CRC32
  73. gtid_mode = ON
  74. enforce_gtid_consistency = ON

  75. # Replication
  76. relay-log = relaylog
  77. relay_log_recovery = ON
  78. replica_parallel_type = LOGICAL_CLOCK
  79. replica_parallel_workers = 4
  80. binlog_transaction_dependency_tracking = WRITESET
  81. replica_preserve_commit_order = ON
  82. replica_checkpoint_period = 2
  83. loose-rpl_read_binlog_speed_limit = 100

  84. # Disalbe InnoDB PQ
  85. loose-force_parallel_execute = OFF

  86. # Parallel LOAD DATA
  87. loose-gdb_parallel_load = ON
  88. loose-innodb_optimize_no_pk_parallel_load = ON

  89. # Rapid
  90. loose-plugin_load_add = 'ha_rapid.so'
  91. loose-rapid_memory_limit = 128M
  92. loose-rapid_worker_threads = 4
  93. loose-rapid_hash_table_memory_limit = 10
  94. loose-secondary_engine_parallel_load_workers = 4

  95. # Clone
  96. loose-plugin_load_add = 'mysql_clone.so'

  97. # MGR
  98. loose-plugin_load_add = 'group_replication.so'
  99. loose-group_replication_group_name = 'thor-aaa'
  100. loose-group_replication_view_change_uuid = 'AUTOMATIC'
  101. loose-group_replication_local_address = '10.18.111.72:33061'
  102. loose-group_replication_group_seeds = '10.18.111.72:33061'
  103. loose-group_replication_communication_stack = "XCOM"
  104. loose-group_replication_recovery_use_ssl = OFF
  105. loose-group_replication_ssl_mode = DISABLED
  106. loose-group_replication_start_on_boot = OFF
  107. loose-group_replication_bootstrap_group = OFF
  108. loose-group_replication_exit_state_action = READ_ONLY
  109. loose-group_replication_flow_control_mode = "DISABLED"
  110. loose-group_replication_single_primary_mode = OFF
  111. loose-group_replication_enforce_update_everywhere_checks = ON
  112. loose-group_replication_majority_after_mode = ON
  113. loose-group_replication_communication_max_message_size = 10M
  114. loose-group_replication_arbitrator = OFF
  115. loose-group_replication_single_primary_fast_mode = 0
  116. loose-group_replication_request_time_threshold = 100
  117. loose-group_replication_primary_election_mode = GTID_FIRST
  118. loose-group_replication_unreachable_majority_timeout = 0
  119. loose-group_replication_member_expel_timeout = 5
  120. loose-group_replication_autorejoin_tries = 288
  121. loose-group_replication_recovery_get_public_key = ON
  122. loose-group_replication_donor_threshold = 100

  123. # greatdb_ha
  124. #loose-plugin_load_add = 'greatdb_ha.so'
  125. #loose-greatdb_ha_enable_mgr_vip = OFF
  126. #loose-greatdb_ha_mgr_vip_nic = 'eth0'
  127. #loose-greatdb_ha_mgr_vip_ip = '172.16.0.252'
  128. #loose-greatdb_ha_mgr_vip_mask = '255.255.255.0'
  129. #loose-greatdb_ha_port = 33062
  130. #loose-greatdb_ha_mgr_read_vip_ips = "172.16.0.251,172.16.0.252"
  131. #loose-greatdb_ha_mgr_read_vip_floating_type = "TO_ANOTHER_SECONDARY"
  132. #loose-greatdb_ha_send_arp_packge_times = 5
  133. #loose-greatdb_ha_mgr_exit_primary_kill_connection_mode = OFF
  134. report_host = '10.18.111.72'
  135. #report_port = 3306

  136. # InnoDB
  137. innodb_buffer_pool_size = 128M
  138. innodb_buffer_pool_instances = 8
  139. innodb_data_file_path = ibdata1:12M:autoextend
  140. innodb_flush_log_at_trx_commit = 1
  141. innodb_log_buffer_size = 32M
  142. innodb_redo_log_capacity = 128M
  143. innodb_doublewrite_files = 2
  144. innodb_max_undo_log_size = 4G
  145. innodb_io_capacity = 4000
  146. innodb_io_capacity_max = 8000
  147. innodb_open_files = 65534
  148. innodb_flush_method = O_DIRECT
  149. innodb_lru_scan_depth = 4000
  150. innodb_lock_wait_timeout = 10
  151. innodb_rollback_on_timeout = ON
  152. innodb_print_all_deadlocks = ON
  153. innodb_online_alter_log_max_size = 4G
  154. innodb_print_ddl_logs = ON
  155. innodb_status_file = ON
  156. innodb_status_output = OFF
  157. innodb_status_output_locks = ON
  158. innodb_sort_buffer_size = 64M
  159. innodb_adaptive_hash_index = OFF
  160. innodb_numa_interleave = OFF
  161. innodb_spin_wait_delay = 20
  162. innodb_print_lock_wait_timeout_info = ON
  163. kill_idle_transaction = 300
  164. innodb_data_file_async_purge = ON

  165. # InnoDB monitor
  166. #innodb_monitor_enable = "module_innodb,module_server,module_dml,module_ddl,module_trx,module_os,module_purge,module_log,module_lock,module_buffer,module_index,module_ibuf_system,module_buffer_page,module_adaptive_hash"

  167. # PFS
  168. #performance_schema = 1
  169. #performance_schema_instrument = '%memory%=on'
  170. #performance_schema_instrument = '%lock%=on'
复制代码
我想请教下这可能是什么原因导致的呢?
全部回复(7)
yejr 2025-3-13 21:24:11

你问题中提到的文档适用于自行安装GreatSQL RPM包、二进制包的场景,而如果用GreatSQL Docker镜像构建MGR集群,可以参考这两份文档内容

- https://gitee.com/GreatSQL/Great ... B%E6%A8%A1%E5%BC%8F

- https://gitee.com/GreatSQL/Great ... B%E6%A8%A1%E5%BC%8F

你上面遇到的错误,估计是你在使用GreatSQL Docker部署时有些过程或方法不对导致的。
zkycaesar 2025-3-14 09:01:29
本帖最后由 zkycaesar 于 2025-3-14 09:04 编辑
yejr 发表于 2025-3-13 21:24
你问题中提到的文档适用于自行安装GreatSQL RPM包、二进制包的场景,而如果用GreatSQL Docker镜像构建MGR ...

您说的部署的方法可能有问题,有哪些可能性呢?或者有什么步骤来排查一下呢?
我是按着这个文档Docker 容器化安装来部署的,mysql实例也能正常启动。容器启动命令稍微有所调整:
  1. docker run -d \
  2. --name greatsql --hostname=greatsql \
  3. --network=host \
  4. -v /root/mysql/my.cnf:/etc/my.cnf \
  5. -v /root/mysql/data:/data \
  6. ccr.ccs.tencentyun.com/greatsql/greatsql
复制代码

有可能是哪个路径配错了吗?或者是这些插件是通过网络下载的,然后我的网络有问题?
yejr 2025-3-14 09:13:54
zkycaesar 发表于 2025-3-14 09:01
您说的部署的方法可能有问题,有哪些可能性呢?或者有什么步骤来排查一下呢?
我是按着这个文档Docker 容 ...

先贴出你的 /root/mysql/my.cnf 这份配置文件内容
zkycaesar 2025-3-14 09:31:37
yejr 发表于 2025-3-14 09:13
先贴出你的 /root/mysql/my.cnf 这份配置文件内容

就是最上面那个。
然后,我其实几个月前就部署过一次,当时是没问题的。这次我是在新主机上重新拉镜像安装的,然后就出问题了。是不是镜像内容做了什么调整?
yejr 2025-3-14 09:40:55
zkycaesar 发表于 2025-3-14 09:31
就是最上面那个。
然后,我其实几个月前就部署过一次,当时是没问题的。这次我是在新主机上重新拉镜像安 ...

想起来了,前阵子我的确更新过,把原来用rpm方式安装的改成用tarball安装,所以要修改basedir,你重新pull镜像应该就好了,配置文件也要跟着更新,详见changelog:
- https://gitee.com/GreatSQL/Great ... 805f54a31aff3572e71
- https://gitee.com/GreatSQL/Great ... 1abe4b9cbc8e92d4bad

现在,最新的GreatSQL 8.0.32-27也已经发布,建议用该版本
zkycaesar 2025-3-14 09:43:47
yejr 发表于 2025-3-14 09:13
先贴出你的 /root/mysql/my.cnf 这份配置文件内容

我看了下之前部署的容器,plugin_dir指向的是/usr/lib64/mysql/plugin/。
新的容器指向的是/usr/lib/plugin/。
是不是就是这个问题呢?
yejr 2025-3-14 10:04:33
zkycaesar 发表于 2025-3-14 09:43
我看了下之前部署的容器,plugin_dir指向的是/usr/lib64/mysql/plugin/。
新的容器指向的是/usr/lib/plug ...

新容器的设置是
basedir=/usr/local/GreatSQL
那么plugin_dir即便不设置,则默认是/usr/local/GreatSQl/lib/plugin

顺便,我们有个问卷,还请抽空帮忙填一下哈,感谢 https://wj.qq.com/s2/11543483/9e09/
zkycaesar

2

主题

0

博客

11

贡献

新手上路

Rank: 1

积分
17

合作电话:010-64087828

社区邮箱:greatsql@greatdb.com

社区公众号
社区小助手
QQ群
GMT+8, 2025-4-22 04:57 , Processed in 0.021088 second(s), 16 queries , Redis On.
快速回复 返回顶部 返回列表