bwi*_*zzy 5 mysql mariadb percona percona-xtradb-cluster
我正在设置一个 MariaDB Galera 集群,我可以\xe2\x80\x99t 似乎让节点相互加入。它们都启动时没有错误,但似乎从未加入,状态始终为断开连接:
\n\nMariaDB [(none)]> show status like \'wsrep%\';\n+--------------------------+----------------------+\n| Variable_name | Value |\n+--------------------------+----------------------+\n| wsrep_cluster_conf_id | 18446744073709551615 |\n| wsrep_cluster_size | 0 |\n| wsrep_cluster_state_uuid | |\n| wsrep_cluster_status | Disconnected |\n| wsrep_connected | OFF |\n| wsrep_local_index | 18446744073709551615 |\n| wsrep_provider_name | |\n| wsrep_provider_vendor | |\n| wsrep_provider_version | |\n| wsrep_ready | ON |\n+--------------------------+----------------------+\n
Run Code Online (Sandbox Code Playgroud)\n\n第一个节点的启动方式为:“sudo service mysql start \xe2\x80\x94wsrep-new-cluster”(也尝试传入集群地址,就像 \xe2\x80\x94wsrep_cluster_address=gcomm://)以及将空my.cnf 中的地址列表
\n\n第二个节点启动:“sudo service mysql start”,my.cnf 中的集群地址为 gcomm://172.16.56.130,172.16.56.131
\n\n无论什么情况,集群状态始终为 \xe2\x80\x9cDisconnected\xe2\x80\x9d 并且集群大小为 0。
\n\n我对 SST 使用 xtrabackup 进行了一些设置,打开了 iptables 防火墙等,但为了尝试找到问题,我关闭了所有内容并使用了最简单的配置,但结果仍然相同。
\n\n这是 my.cnf
\n\n# MariaDB database server configuration file.\n\n[client]\nport = 3306\nsocket = /var/run/mysqld/mysqld.sock\n\n\n[mysqld_safe]\nsocket = /var/run/mysqld/mysqld.sock\nnice = 0\n\n[mysqld]\n#\n# * Basic Settings\n#\nuser = mysql\npid-file = /var/run/mysqld/mysqld.pid\nsocket = /var/run/mysqld/mysqld.sock\nport = 3306\nbasedir = /usr\ndatadir = /var/lib/mysql\ntmpdir = /tmp\nlc_messages_dir = /usr/share/mysql\nlc_messages = en_US\nskip-external-locking\nbind-address = 0.0.0.0\n\n# * Fine Tuning\nmax_connections = 100\nconnect_timeout = 5\nwait_timeout = 600\nmax_allowed_packet = 16M\nthread_cache_size = 128\nsort_buffer_size = 4M\nbulk_insert_buffer_size = 16M\ntmp_table_size = 32M\nmax_heap_table_size = 32M\n\n\n# * MyISAM\nmyisam_recover = BACKUP\nkey_buffer_size = 128M\ntable_open_cache = 400\nmyisam_sort_buffer_size = 512M\nconcurrent_insert = 2\nread_buffer_size = 2M\nread_rnd_buffer_size = 1M\n\n# * Query Cache Configuration\nquery_cache_limit = 128K\nquery_cache_size = 64M\nlog_warnings = 2\nslow_query_log_file = /var/log/mysql/mariadb-slow.log\nlong_query_time = 10\nlog_slow_verbosity = query_plan\nlog_bin = /var/log/mysql/mariadb-bin\nlog_bin_index = /var/log/mysql/mariadb-bin.index\nexpire_logs_days = 10\nmax_binlog_size = 100M\n\n# * InnoDB\ninnodb_buffer_pool_size = 1G\n#innodb_log_file_size = 100M\ninnodb_log_buffer_size = 8M\ninnodb_file_per_table = 1\ninnodb_open_files = 400\ninnodb_io_capacity = 400\ninnodb_flush_method = O_DIRECT\n\n\n[mysqldump]\nquick\nquote-names\nmax_allowed_packet = 16M\n\n[mysql]\n\n[isamchk]\nkey_buffer = 16M\n\n\n# MariaDB / Galera Cluster Settings\nwsrep_provider = /usr/lib/galera/libgalera_smm.so\nwsrep_provider_options = "gcache.size=32G"\nwsrep_cluster_address = "gcomm://172.16.56.130,172.16.56.131"\nwsrep_cluster_name = \'my_galera_cluster\'\nwsrep_node_address = \'172.16.56.131\'\nwsrep_node_name = \'lou-dev-sc-db2\'\nwsrep_sst_method = xtrabackup\nwsrep_sst_auth = root:rootPa$$\nwsrep_slave_threads = 16\n\nbinlog_format = ROW\ndefault_storage_engine = InnoDB\ninnodb_autoinc_lock_mode = 2\ninnodb_locks_unsafe_for_binlog = 1\ninnodb_flush_log_at_trx_commit = 2\n\n# * IMPORTANT: Additional settings that can override those from this file!\n# The files must end with \'.cnf\', otherwise they\'ll be ignored.\n!includedir /etc/mysql/conf.d/\n
Run Code Online (Sandbox Code Playgroud)\n\n我还意识到 xtrabackup 需要提供访问权限,因此我还从远程服务器为该用户创建了 GRANT 条目,并通过手动登录进行测试,仍然没有骰子。
\n\n有任何想法吗?
\n小智 4
从显示状态输出来看,您的服务器不会加载任何 wsrep 提供程序 (Galera),甚至可能不会尝试加载。据我了解 mysql 配置文件如何工作,我认为您需要将其放在[mysqld]
MariaDB/Galera 设置之前(或将它们立即放在 InnoDB 设置之后)。否则它们似乎在该[isamcheck]
部分中并且根本不被服务器解析。