主从复制binlog日志方式
步骤1;准备两台机器,关闭防火墙和selinux。—两台机器环境必须一致。时间也得一致
步骤2;配置解析,尝试查看能不能ping通
步骤3;两台机器安装mysql5.7
方法;wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm 先下载 mysql包
方法;rpm -ivh mysql80-community-release-el7-3.noarch.rpm 进行解压
方法;vim /etc/yum.repos.d/mysql-community.repo 打开 yum 配置文件下载 安装下载 5.7版本
方法;yum -y install mysql-community-server 下载
开始配置主服务
在主服务器上,必须启用二进制日志记录并配置唯一的服务器ID。需要重启Mysql服务。
步骤1;vim /etc/my.cnf 配置文件 添加一下内容
[mysqld] 这个标签下面
log-bin=/var/log/mysql/mysql-bin
server-id=1
步骤2;创建日志目录并赋予权限,
[root@mysql-master ~]# mkdir /var/log/mysql
[root@mysql-master ~]# chown mysql.mysql /var/log/mysql
步骤3;启动MySQL服务 修改密码 创建一个用户
方法;systemctl restart mysqld 启动MySQL
方法;grep pass /var/log/mysqld.log 过滤密码
方法; mysqladmin -uroot -p’旧密码’ password ‘新密码’ 修改密码
方法;GRANT REPLICATION SLAVE ON . TO ‘用户l’@’%’ identified by ‘密码’; 创建用户
方法;mysql> flush privileges; 刷新
步骤4;在主服务器上面操作
方法;mysql> show master status\G 查看日志时间
开始配置从服务器
步骤1;vim /etc/my.cnf 配置文件 添加一下内容
[mysqld] 这个标签下面
server-id=2
重点 ,改完配置文件 一定要重启 mysql
步骤2;启动MySQL 过滤密码修改密码
方法;systemctl restart mysqld 启动
方法;grep pass /var/log/mysqld.log 过滤密码
方法;mysqladmin -uroot -p’旧密码’ password ‘新密码’ 修改密码
步骤3;登录MySQL 编写内容
方法;登录mysql
mysql> \e
CHANGE MASTER TO
MASTER_HOST=‘主服务解析名,或者IP地址’,
MASTER_USER=‘主服务器创建的用户’,
MASTER_PASSWORD=‘密码’,
MASTER_LOG_FILE=‘主节点查看的二进制日志包’,
MASTER_LOG_POS=起始位置;
-> ;
change master to
master_host='mysql-master',
master_user='mingqing',
master_password='MingQing@11..',
master_log_file='mysql-bin.000001',
master_log_pos=460;
就是主服务上面查看的这个
步骤4;刷新查看
方法;mysql> start slave;
方法 ;mysql> show slave status\G
测试是否成功
主节点测试
丛节点测试
部署主从复制 2从binlog日志方式
步骤1;在准备一台虚拟机做为从节点2,关闭防火墙和selinux
192.168.246.130 #mysql-slave2
方法;配置解析,前面的也配置一下
步骤2;配置从节点,要保证数据一致和同步,先从从节点1 备份已有的
方法1;mysqldump -uroot -p’q密码’ --set-gtid-purged=OFF 库 > 文件名 主节点拷贝加参数
方法2;mysqldump -uroot -p’q密码’ 库 > 文件名 从节点不用添加
方法3;scp 文件名 192.168.246.130:/root/ #拷贝到slave2进行远程拷贝给从节点3
步骤3;从节点3 操作 进行安装 MySQL
方法;wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm 先下载 mysql包
方法;rpm -ivh mysql80-community-release-el7-3.noarch.rpm 进行解压
方法;vim /etc/yum.repos.d/mysql-community.repo 打开 yum 配置文件下载 安装下载 5.7版本
方法;yum -y install mysql-community-server 下载
步骤4; 配置文件 启动MySQL服务 修改密码 创建一个用户
vim /etc/my.cnf 配置文件 添加一下内容
[mysqld] 这个标签下面
server-id=3 按照顺序来 每台机器的id不一样
方法;systemctl restart mysqld 启动MySQL
方法;grep pass /var/log/mysqld.log 过滤密码
方法; mysqladmin -uroot -p’旧密码’ password ‘新密码’ 修改密码
方法;mysql> flush privileges; 刷新
步骤5;登录MySQL 创建一个库 进行恢复 然后编写master
方法;mysql -uroot -p’Qf@12345!’ test < test.sql #将数据导入。
方法;先查看 主节点的 master 新的日志包 还有位置
方法;mysql> \e
CHANGE MASTER TO
MASTER_HOST=‘主节点名称或者 ip地址’,
MASTER_USER=‘同步用户 主机点创建的’,
MASTER_PASSWORD=‘密码’,
MASTER_LOG_FILE=‘新的日志包’,
MASTER_LOG_POS=新的位置;
change master to
master_host='mysql-master',
master_user='mingqing',
master_password='MingQing@11..',
master_log_file='mysql-bin.000001',
master_log_pos=460;
步骤6;刷新 查看是否成功
方法;mysql> start slave;
方法;mysql> show slave status\G
测试 主节点 写入
从节点一查看
从节点二 查看
部署 一主双从(gtid方式)
方法类似上面的 binlog日志方式 不用备份 gtid方式 会自动补全没有的数据
步骤;在准备一台虚拟机做为slave2,关闭防火墙和selinux
192.168.246.130 #mysql-slave2
gtid方式 会自动补全没有的数据 不用备份
步骤2;从节点操作 按着MySQL 修改密码 直接指定
slave2操作:
安装mysql5.7
[root@mysql-slave2 ~]# wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
[root@mysql-slave2 ~]# yum -y install mysql-community-server
[root@mysql-slave2 ~]# mysql -uroot -p’Qf@12345!’
步骤3; 编写配置文件
方法; vim /etc/my.cnf 添加一下内容
server-id=3 #每台机器的id不一样
gtid_mode = ON
enforce_gtid_consistency=1
master-info-repository=TABLE
relay-log-info-repository=TABLE
步骤4;启动MySQL登录
[root@mysql-slave2 ~]# systemctl restart mysqld
[root@mysql-slave2 ~]# systemctl enable mysqld
[root@mysql-slave2 ~]# mysql -uroot -p’Qf@12345!’
步骤5;进入MySQL 进行编写
方法;mysql -uroot -p’Qf@12345!’
mysql> \e
change master to
master_host=‘192.168.246.129’, 主节点主机名或者ip地址
master_user=‘slave’, 主节点创建的同步用户
master_password=‘123’, 密码
master_auto_position=1;
步骤6;完成刷新 测试
mysql> start slave; #将slave启动起来
mysql> show slave status\G #查看一下状态