mysql 多主
发布时间:2022-08-10 09:49:24 所属栏目:MySql教程 来源:互联网
导读:原理:多个msyql/mariadb之间可以实时同步,任意节点的操作可以立即同步到其他节点,底层采用galera插件同步,类似rsync,上层mysql相对于galera是透明的,可以实现多节点同时读写(无法实现读写分离)。 NOTE:普通的msyql/mariadb无法集成galera,要想使用g
|
原理:多个msyql/mariadb之间可以实时同步,任意节点的操作可以立即同步到其他节点,底层采用galera插件同步,类似rsync,上层mysql相对于galera是透明的,可以实现多节点同时读写(无法实现读写分离)。 NOTE:普通的msyql/mariadb无法集成galera,要想使用galera必须编译msyql/mariadb让其拥有调用galera 的能力,或者可以直接下载支持galera的mysql/mariadb。 环境: 1.采用三节点 节点一:192.168.85.136 节点二:192.168.85.137 节点三:192.168.85.138 2.系统平台: Red Hat Enterprise Linux Server release 6.7 (Santiago) 3.关闭防火墙(所有节点执行) /etc/rc.d/init.d/iptables stop setenforce 0 4.设置galera.repo http://releases.galeracluster.com//mysql-wsrep-5.5/redhat/6/x86_64/ #mysql-server软件包 http://releases.galeracluster.com//galera-3/redhat/6/x86_64/ #galera组件 将上面地址加入yum repo 5.查看libgalera_smm.so路径(mysql 会调用此模块像其他节点同步数据) rpm -ql galera-3-25.3.25-2.el6.x86_64 | grep smm.so /usr/lib64/galera-3/libgalera_smm.so 6.配置my.cnf 复制代码 [mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock wsrep_node_name=node1 wsrep_provider=/usr/lib64/galera-3/libgalera_smm.so wsrep_sst_method=rsync port=3306 user=mysql default_storage_engine=InnoDB innodb_autoinc_lock_mode=2 innodb_locks_unsafe_for_binlog=1 innodb_flush_log_at_trx_commit=0 innodb_doublewrite=0 innodb_file_per_table=1 binlog_format=ROW log-bin=mysql-bin server-id=101 relay-log=mysql-relay-bin log-slave-updates=1 symbolic-links=0 [mysqld_safe] log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid 复制代码 三个节点全部同步此配置文件,需注意: wsrep_node_name=node1 #配置成节点node名称 wsrep_provider=/usr/lib64/galera-3/libgalera_smm.so #就是刚才我们查出的模块路径 7.启动mysql: node1:service mysql start --wsrep_cluster_address=gcomm:// node2:service mysql start --wsrep_cluster_address=gcomm://192.168.85.136 node3:service mysql start --wsrep_cluster_address=gcomm://192.168.85.137 8.验证: 在node1上创建数据库: 在其余node查看: node2: node3: 接下来可以将集群信息写入到my.cnf 在每个节点中my.cnf 文件mysqld段中加入: wsrep_cluster_address="gcomm://192.168.85.136,192.168.85.137,192.168.85.138" ################################################################################ 排错: 启动mysql出现without updating PID file (/var/lib/mysql/node1.pid): 解决: 注释my.cnf中 wsrep_cluster_address="gcomm://192.168.85.136,192.168.85.137,192.168.85.138" 启动第一个node: /etc/rc.d/init.d/mysql start --wsrep_cluster_address=gcomm:// 启动第二个node: /etc/rc.d/init.d/mysql start --wsrep_cluster_address=gcomm://192.168.85.136 启动第三个node: /etc/rc.d/init.d/mysql start --wsrep_cluster_address=gcomm://192.168.85.136 全部启动完成后将 wsrep_cluster_address="gcomm://192.168.85.136,192.168.85.137,192.168.85.138" 加入到每个节点中 (编辑:济宁站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |

