Ubuntu系统安装MySQL主从模式集群(成功!)
安装MySQL主从模式集群
配置MySQL节点
打开主节点的配置文件
sudo vim /etc/mysql/my.cnf
[client]
port=3306
[mysqld]
default-time_zone='+8:00'
port=3306
# 默认binlog文件的名称
log_bin=mysql-bin
# 当前服务器的ID,不能重复,推荐用服务器IP D段
server-id=1
# 允许主节点读写
read-only=0
# 数据刷盘参数=1时,只要有1个事务提交就会触发写盘的操作,安全性最高,并发性最差
# 数据刷盘参数=0时,由文件系统控制写盘的频率,并发性能最好,但是意外丢失数据的风险最大,这里根据实际需求配置,不建议乱配。
sync_binlog=0
# 排除掉不需要同步的数据库列表
binlog-ignore-db=performance_schema
binlog-ignore-db=information_schema
binlog-ignore-db=sys
重启MySQL服务
sudo systemctl restart mysql
在主节点创建用户,将其权限赋予从节点,用于为从节点提供安全用户登录主节点拷贝二进制日志:
CREATE USER 'slave01'@'%' IDENTIFIED BY '12345678';
GRANT REPLICATION SLAVE ON *.* TO 'replication_user'@'%';
配置主节点:
重新打开/etc/mysql/my.cnf
文件:
sudo vim /etc/mysql/my.cnf
[client]
port=3306
[mysqld]
default-time_zone='+8:00'
port=3306
# 当前服务器的ID,不能重复
server-id=2
# 只允许从节点读
read-only=1
relay_log=mysql-relay-bin
binlog-format=ROW
打开/etc/mysql/mysql.conf.d/mysqld.cnf
文件,开启MySQL的远程连接:
# 将bind-address改为0.0.0.0,表示允许远程连接
bind-address=0.0.0.0
重启MySQL服务
sudo systemctl restart mysql
配置从节点:
打开/etc/mysql/my.cnf
文件:
vim /etc/mysql/my.cnf
在[mysqld]
部分下面添加以下行:
log_bin = /var/log/mysql/mysql-bin.log
gtid-mode = ON
enforce-gtid-consistency = ON
然后重启MySQL服务:
sudo service mysql restart
开放端口
(1)开放MySQL的端口
sudo ufw allow 3306/tcp
(2)或者直接关闭防火墙
sudo systemctl stop ufw
最后查看防火墙状态
sudo ufw status
启动主从库
进入主库,记录查询结果的前两列
show master status;
进入从库控制台,输入:
CHANGE REPLICATION SOURCE TO SOURCE_HOST='主库IP地址', SOURCE_USER='slave01',SOURCE_PASSWORD='12345678',SOURCE_LOG_FILE='binlog日志文件名',SOURCE_LOG_POS=binlog日志文件位置;
上述是8.0.23版本之后的,版本之前的如下:
CHANGE MASTER TO MASTER_HOST='IP地址', MASTER_USER='',MASTER_PASSWORD='',MASTER_LOG_FILE='',MASTER_LOG_POS=XXX;
其中里面的主节点ip、主库密码需要更换为自己的ip和密码,File和Postion是在前面主库输入查看主库状态得到的信息。
开启从节点
start replica; # 8.0.22版本之后
start slave; # 8.0.22版本之前
在从库输入指令查看从节点列表
show replica status\G; # 8.0.22版本之后的指令
show slave status\G; # 8.0.22版本之前的指令
如果要关闭从库
STOP REPLICA; # 8.0.22版本之后
STOP SLAVE; # 8.0.22版本之前
同步数据
在主节点创建数据库和表,并插入数据:
CREATE DATABASE test;
USE test;
CREATE TABLE users (id INT PRIMARY KEY, name VARCHAR(50));
INSERT INTO users VALUES (1, 'John');
在从节点查看是否存在表:
use test;
select * from users;
测试集群
在从节点执行:
USE test;
SELECT * FROM users;
能看到数据,则主从节点数据同步成功。
原文地址:https://blog.csdn.net/cleverstronge/article/details/136638525
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!