按照有关如何设置 MariaDB Galera 集群的文档,我只是创建了正确的配置文件并使用 galera_new_cluster 命令启动了我的主数据库服务器(我正在运行 RHEL7)。根据文档,此时您应该能够运行:
SHOW STATUS LIKE 'wsrep_cluster_size';
并且看到
+--------------------+-------+
| Variable_name | Value |
+--------------------+-------+
| wsrep_cluster_size | 1 |
+--------------------+-------+
但是,我看到 wsrep_cluster_size 为零以及其他相关值:
MariaDB [(none)]> show global status like 'wsrep%';
+--------------------------+----------------------+
| Variable_name | Value |
+--------------------------+----------------------+
| wsrep_cluster_conf_id | 18446744073709551615 |
| wsrep_cluster_size | 0 |
| wsrep_cluster_state_uuid | |
| wsrep_cluster_status | Disconnected |
| wsrep_connected | OFF |
| wsrep_local_bf_aborts | 0 |
| wsrep_local_index | 18446744073709551615 |
| wsrep_provider_name | |
| wsrep_provider_vendor | |
| wsrep_provider_version | |
| wsrep_ready | OFF |
| wsrep_thread_count | 0 |
+--------------------------+----------------------+
我在/etc/my.cnf.d/server.cnf中的设置是:
bind_address=172.28.7.15
wsrep_provider=/usr/lib64/galera/libgalera_smm.so
wsrep_cluster_name="galera_cluster"
wsrep_cluster_address="gcomm://172.28.7.15,172.28.7.18,172.28.7.19"
wsrep_node_address=172.28.7.15
wsrep_node_name='node01'
wsrep_slave_threads=1
wsrep_certify_nonPK=1
wsrep_max_ws_rows=131072
wsrep_max_ws_size=1073741824
wsrep_debug=1
wsrep_convert_LOCK_to_trx=0
wsrep_retry_autocommit=1
wsrep_auto_increment_control=1
wsrep_drupal_282555_workaround=0
wsrep_causal_reads=0
wsrep_notify_cmd=
wsrep_sst_method=rsync
我已经确认变量是使用 SHOW VARIABLES 加载的。
我觉得我完全遵循了文档,但它只是没有显示出我所期望的内容。日志中唯一的警告是有关 SSL 未设置的警告 - 这是必需的吗?
您提到您在 /var/log/mariadb/mariadb.log 中没有看到任何 WSREP 日志。 也许
wsrep_on
选项设置为 OFF
。 尝试将其设置为 ON
。
许多文档都假设 MariaDB Galera 10.0。 但在 10.1 及更高版本中,
wsrep_on
默认为 OFF
。
Default Value: OFF (>= MariaDB 10.1), ON (<= MariaDB Galera Cluster 10.0)
https://mariadb.com/kb/en/mariadb/galera-cluster-system-variables/#wsrep_on
对于 Centos 7,编辑 /etc/my.cnf 文件并
setenforce 0
将其写入您的所有节点上。 然后启动集群并连接节点。
这是因为你仍然将设置“safe_to_bootstrap”设置为1。 当集群的第一个节点关闭时,只需将其设置为 0 并重新启动 mysql。
使用 SHOW VARIABLES 检查 log_error 变量的值,并确定 日志文件的路径和名称。
您可以使用特定于复制的事件启用错误日志记录:wsrep_log_conflicts、cert.log_conflicts 和 wsrep_debug。设置这些将导致 MySQL 记录复制过程中的冲突信息。
wsrep_log_conflicts 参数启用错误日志的冲突日志记录。例如,当两个节点尝试同时写入同一个表中的同一行时,它将记录。即使此冲突在提交之前已得到解决,它也会执行此操作。如果不记录此信息,您将不会意识到暂时存在冲突。
cert.log_conflicts 是一个 wsrep 提供程序选项,可在复制期间记录认证失败。
wsrep_debug参数启用调试信息,在日志文件中提供更详细的条目。但是,此参数也可能导致数据库服务器将密码和类似的身份验证数据记录到错误日志中。不要在生产环境中启用它,因为它是一个安全漏洞