zkycaesar 发表于 2025-3-13 18:36:18

启动集群时找不到group_replication插件

本帖最后由 zkycaesar 于 2025-3-14 09:57 编辑

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

启动容器后,我按照文档MGR安装部署的步骤启动集群。当执行到c.addInstance()添加另一个实例时,我选择Clone,然后就报错:
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)
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配置文件用的默认配置,几乎没有动过:
#
# my.cnf example for GreatSQL 8.0.32-26
#
# 下面参数选项设置仅作为参考,假定服务器配置为128C256G
#

socket    = /data/GreatSQL/mysql.sock


loose-skip-binary-as-hex
prompt = "(\\D)[\\u@GreatSQL][\\d]> "
no-auto-rehash


user    = mysql
port    = 3306
server_id = 101811172
basedir = /usr/
datadir    = /data/GreatSQL
socket    = /data/GreatSQL/mysql.sock
pid-file = mysql.pid
character-set-server = UTF8MB4
skip_name_resolve = ON
default_time_zone = "+8:00"
bind_address = "0.0.0.0"
secure_file_priv = /data/GreatSQL
lower_case_table_names = 0

# Performance
lock_wait_timeout = 3600
open_files_limit    = 65535
back_log = 1024
max_connections = 512
max_connect_errors = 1000000
table_open_cache = 1024
table_definition_cache = 1024
sort_buffer_size = 4M
join_buffer_size = 4M
read_buffer_size = 8M
read_rnd_buffer_size = 4M
bulk_insert_buffer_size = 64M
thread_cache_size = 768
interactive_timeout = 600
wait_timeout = 600
tmp_table_size = 32M
max_heap_table_size = 32M
max_allowed_packet = 64M
net_buffer_shrink_interval = 180
sql_generate_invisible_primary_key = ON
loose-lock_ddl_polling_mode = ON
loose-lock_ddl_polling_runtime = 200

# Logs
log_timestamps = SYSTEM
log_error = error.log
log_error_verbosity = 3
slow_query_log = ON
log_slow_extra = ON
slow_query_log_file = slow.log
long_query_time = 0.01
log_queries_not_using_indexes = ON
log_throttle_queries_not_using_indexes = 60
min_examined_row_limit = 100
log_slow_admin_statements = ON
log_slow_replica_statements = ON
log_slow_verbosity = FULL
log_bin = binlog
binlog_format = ROW
sync_binlog = 1
binlog_cache_size = 4M
max_binlog_cache_size = 6G
max_binlog_size = 1G
binlog_space_limit = 500G
binlog_rows_query_log_events = ON
binlog_expire_logs_seconds = 604800
binlog_checksum = CRC32
gtid_mode = ON
enforce_gtid_consistency = ON

# Replication
relay-log = relaylog
relay_log_recovery = ON
replica_parallel_type = LOGICAL_CLOCK
replica_parallel_workers = 4
binlog_transaction_dependency_tracking = WRITESET
replica_preserve_commit_order = ON
replica_checkpoint_period = 2
loose-rpl_read_binlog_speed_limit = 100

# Disalbe InnoDB PQ
loose-force_parallel_execute = OFF

# Parallel LOAD DATA
loose-gdb_parallel_load = ON
loose-innodb_optimize_no_pk_parallel_load = ON

# Rapid
loose-plugin_load_add = 'ha_rapid.so'
loose-rapid_memory_limit = 128M
loose-rapid_worker_threads = 4
loose-rapid_hash_table_memory_limit = 10
loose-secondary_engine_parallel_load_workers = 4

# Clone
loose-plugin_load_add = 'mysql_clone.so'

# MGR
loose-plugin_load_add = 'group_replication.so'
loose-group_replication_group_name = 'thor-aaa'
loose-group_replication_view_change_uuid = 'AUTOMATIC'
loose-group_replication_local_address = '10.18.111.72:33061'
loose-group_replication_group_seeds = '10.18.111.72:33061'
loose-group_replication_communication_stack = "XCOM"
loose-group_replication_recovery_use_ssl = OFF
loose-group_replication_ssl_mode = DISABLED
loose-group_replication_start_on_boot = OFF
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 = OFF
loose-group_replication_enforce_update_everywhere_checks = ON
loose-group_replication_majority_after_mode = ON
loose-group_replication_communication_max_message_size = 10M
loose-group_replication_arbitrator = OFF
loose-group_replication_single_primary_fast_mode = 0
loose-group_replication_request_time_threshold = 100
loose-group_replication_primary_election_mode = GTID_FIRST
loose-group_replication_unreachable_majority_timeout = 0
loose-group_replication_member_expel_timeout = 5
loose-group_replication_autorejoin_tries = 288
loose-group_replication_recovery_get_public_key = ON
loose-group_replication_donor_threshold = 100

# greatdb_ha
#loose-plugin_load_add = 'greatdb_ha.so'
#loose-greatdb_ha_enable_mgr_vip = OFF
#loose-greatdb_ha_mgr_vip_nic = 'eth0'
#loose-greatdb_ha_mgr_vip_ip = '172.16.0.252'
#loose-greatdb_ha_mgr_vip_mask = '255.255.255.0'
#loose-greatdb_ha_port = 33062
#loose-greatdb_ha_mgr_read_vip_ips = "172.16.0.251,172.16.0.252"
#loose-greatdb_ha_mgr_read_vip_floating_type = "TO_ANOTHER_SECONDARY"
#loose-greatdb_ha_send_arp_packge_times = 5
#loose-greatdb_ha_mgr_exit_primary_kill_connection_mode = OFF
report_host = '10.18.111.72'
#report_port = 3306

# InnoDB
innodb_buffer_pool_size = 128M
innodb_buffer_pool_instances = 8
innodb_data_file_path = ibdata1:12M:autoextend
innodb_flush_log_at_trx_commit = 1
innodb_log_buffer_size = 32M
innodb_redo_log_capacity = 128M
innodb_doublewrite_files = 2
innodb_max_undo_log_size = 4G
innodb_io_capacity = 4000
innodb_io_capacity_max = 8000
innodb_open_files = 65534
innodb_flush_method = O_DIRECT
innodb_lru_scan_depth = 4000
innodb_lock_wait_timeout = 10
innodb_rollback_on_timeout = ON
innodb_print_all_deadlocks = ON
innodb_online_alter_log_max_size = 4G
innodb_print_ddl_logs = ON
innodb_status_file = ON
innodb_status_output = OFF
innodb_status_output_locks = ON
innodb_sort_buffer_size = 64M
innodb_adaptive_hash_index = OFF
innodb_numa_interleave = OFF
innodb_spin_wait_delay = 20
innodb_print_lock_wait_timeout_info = ON
kill_idle_transaction = 300
innodb_data_file_async_purge = ON

# InnoDB monitor
#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"

# PFS
#performance_schema = 1
#performance_schema_instrument = '%memory%=on'
#performance_schema_instrument = '%lock%=on'
我想请教下这可能是什么原因导致的呢?

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实例也能正常启动。容器启动命令稍微有所调整:
docker run -d \
--name greatsql --hostname=greatsql \
--network=host \
-v /root/mysql/my.cnf:/etc/my.cnf \
-v /root/mysql/data:/data \
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/GreatSQL-Docker/commit/c15f510bfae99873b8842805f54a31aff3572e71
- https://gitee.com/GreatSQL/GreatSQL-Docker/commit/b11109ccd777f7220990d1abe4b9cbc8e92d4bad

现在,最新的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/
页: [1]
查看完整版本: 启动集群时找不到group_replication插件