MySQL的主从异步复制实验
注意: MySQL的主从复制不是架构
MySQL的主从异步复制实验
需要3台机器
部署MySQL主从异步复制
mysql A:192.168.200.66
mysql B:192.168.200.67
mysql C:192.168.200.68
------------------------------------------
所有机器:
iptables -F
setenforce 0
systemctl stop firewalld
------------------------------------------
A :
yum -y install ntp (时间同步服务器,保证3台机器的时间是一致的)
vim /etc/npt.conf # 在文件末尾添加两行
server 127.127.1.0
fudge 127.127.1.0 stratum 8
保存退出
启动NTP服务
systemctl enable ntpd
systemctl start ntpd
-------------------------------------------
B :
rpm -q ntpdate
yum -y install ntpdate
ntpdate 192.168.200.66 //时间同步,保证第2台机器与主服务器的时间是一致的。
date -s "2018-10-12 00:22:33" //模拟设置时间,然后再用上述命令查看是否同步。
ntpdate 192.168.200.66
date //查看是否同步成功
crontab -l //查看计划任务//会看到每台机器都会有一个时间同步的计划任务
--------------------------------------------
C :
rpm -q ntpdate
yum -y install ntpdate
ntpdate 192.168.200.66
========================================
实验开始:
所有机器安装mariadb mariadb-devel mariadb-server
yum -y install mariadb mariadb-devel mariadb-server
并开启mariadb
systemctl start mariadb
---------------------------------------------
A :
vim /etc/my.cnf
[mysqld]
server-id=1 //服务的描述编号 3台主机的描述编号不能一样
log-bin=mysql-binlog //开启二进制日志功能
log-slave-updates=true
保存退出
重启mariadb
systemctl restart mariadb
netstat -lnpt |grep :3306 //检查数据库端口号
mysql
grant replication slave on *.* to 'myslave'@'192.168.200.6_' identified by '123456'; //给从服务器用户授权
flush privileges; //刷新授权表
show master status; //查看日志的位置 Position
exit
《考虑主服务器上有没有旧数据,如果有的话进行备份》
mysqldump -u root --all-databases > /root/alldbbackup.sql
scp /root/alldbbackup.sql root@192.168.200.67:/root/
scp /root/alldbbackup.sql root@192.168.200.68:/root/
---------------------------------------------
B:
《考虑主服务器上有没有旧数据,如果有的话进行备份》从的服务器要进行导入数据
mysql -u root -p < /root/alldbbackup.sql //导入主服务器的数据
//从服务器连接主服务器进行测试,如果连接成功说明主库配置成功
mysql -u myslave -p123456 -h 192.168.200.66
//修改mysql 配置文件
vim /etc/my.cnf
server-id=2 //开启中继日志
relay-log=relay-log-bin
relay-log-index=slave-relay-bin.index
保存退出
////重启mariadb
systemctl restart mariadb
//连接mysql
mysql
stop slave; //停掉本身的从服务器功能
CHANGE MASTER TO
MASTER_HOST='192.168.200.66',
MASTER_USER='myslave',
MASTER_PASSWORD='123456',
MASTER_LOG_FILE='mysql-binlog.000001',
///////////////////////////////////通过在A主机中的数据库的show master status; 来查看日志的MASTER_LOG_FILE以及MASTER_LOG_POS的值是多少
MASTER_LOG_POS=479;
/////开启从服务器功能
start slave;
show slave status\G; //查看从的状态信息 \G 表示竖行显示信息
《如果在操作过程中出现报错,或看到从中继日志没有开启,可以重新设定 ,用这个命令也可以查看到底哪里出现错误。然后根据以下操作在重新设定,在进行查看。
stop slave;
reset slave;
CHANGE MASTER TO
MASTER_HOST='192.168.200.66',
MASTER_USER='myslave',
MASTER_PASSWORD='123456',
MASTER_LOG_FILE='mysql-binlog.000001',
MASTER_LOG_POS=479;
然后 resart slave;
show slave status\G ; //再进行查看 主要是看Slave_IO_Running 与Slave_SQL_Running 是否为yes ,若是yes表示成功
》
-----------------------------------------------
C:
《考虑主服务器上有没有旧数据,如果有的话进行备份》从的服务器要进行导入数据
mysql -u root -p < /root/alldbbackup.sql //导入主服务器的数据
//从服务器连接主服务器进行测试,如果连接成功说明主库配置成功
mysql -u myslave -p123456 -h 192.168.200.66
//修改mysql 配置文件
vim /etc/my.cnf
server-id=3
relay-log=relay-log-bin
relay-log-index=slave-relay-bin.index
保存退出
////重启mariadb
systemctl restart mariadb
//连接mysql
mysql
stop slave; //停掉本身的从服务器功能
CHANGE MASTER TO
MASTER_HOST='192.168.200.66',
MASTER_USER='myslave',
MASTER_PASSWORD='123456',
MASTER_LOG_FILE='mysql-binlog.000001',
///////////////////////////////////通过在A主机中的数据库的show master status; 来查看日志的MASTER_LOG_FILE以及MASTER_LOG_POS的值是多少
MASTER_LOG_POS=479;
/////开启从服务器功能
start slave;
show slave status\G;
--------------------------------------------------
所有主机都执行
show databases; //查看3个数据库内容是否一致
在A主库中创建一个库
create database AB_DFF; //创建一个库
在所有主机进行查看show databases; //查看是否有这个库AB_DFF
=====================================================
需要3台机器
部署MySQL主从异步复制
mysql A:192.168.200.66
mysql B:192.168.200.67
mysql C:192.168.200.68
------------------------------------------
所有机器:
iptables -F
setenforce 0
systemctl stop firewalld
------------------------------------------
A :
yum -y install ntp (时间同步服务器,保证3台机器的时间是一致的)
vim /etc/npt.conf # 在文件末尾添加两行
server 127.127.1.0
fudge 127.127.1.0 stratum 8
保存退出
启动NTP服务
systemctl enable ntpd
systemctl start ntpd
-------------------------------------------
B :
rpm -q ntpdate
yum -y install ntpdate
ntpdate 192.168.200.66 //时间同步,保证第2台机器与主服务器的时间是一致的。
date -s "2018-10-12 00:22:33" //模拟设置时间,然后再用上述命令查看是否同步。
ntpdate 192.168.200.66
date //查看是否同步成功
crontab -l //查看计划任务//会看到每台机器都会有一个时间同步的计划任务
--------------------------------------------
C :
rpm -q ntpdate
yum -y install ntpdate
ntpdate 192.168.200.66
========================================
实验开始:
所有机器安装mariadb mariadb-devel mariadb-server
yum -y install mariadb mariadb-devel mariadb-server
并开启mariadb
systemctl start mariadb
---------------------------------------------
A :
vim /etc/my.cnf
[mysqld]
server-id=1 //服务的描述编号 3台主机的描述编号不能一样
log-bin=mysql-binlog //开启二进制日志功能
log-slave-updates=true
保存退出
重启mariadb
systemctl restart mariadb
netstat -lnpt |grep :3306 //检查数据库端口号
mysql
grant replication slave on *.* to 'myslave'@'192.168.200.6_' identified by '123456'; //给从服务器用户授权
flush privileges; //刷新授权表
show master status; //查看日志的位置 Position
exit
《考虑主服务器上有没有旧数据,如果有的话进行备份》
mysqldump -u root --all-databases > /root/alldbbackup.sql
scp /root/alldbbackup.sql root@192.168.200.67:/root/
scp /root/alldbbackup.sql root@192.168.200.68:/root/
---------------------------------------------
B:
《考虑主服务器上有没有旧数据,如果有的话进行备份》从的服务器要进行导入数据
mysql -u root -p < /root/alldbbackup.sql //导入主服务器的数据
//从服务器连接主服务器进行测试,如果连接成功说明主库配置成功
mysql -u myslave -p123456 -h 192.168.200.66
//修改mysql 配置文件
vim /etc/my.cnf
server-id=2 //开启中继日志
relay-log=relay-log-bin
relay-log-index=slave-relay-bin.index
保存退出
////重启mariadb
systemctl restart mariadb
//连接mysql
mysql
stop slave; //停掉本身的从服务器功能
CHANGE MASTER TO
MASTER_HOST='192.168.200.66',
MASTER_USER='myslave',
MASTER_PASSWORD='123456',
MASTER_LOG_FILE='mysql-binlog.000001',
///////////////////////////////////通过在A主机中的数据库的show master status; 来查看日志的MASTER_LOG_FILE以及MASTER_LOG_POS的值是多少
MASTER_LOG_POS=479;
/////开启从服务器功能
start slave;
show slave status\G; //查看从的状态信息 \G 表示竖行显示信息
《如果在操作过程中出现报错,或看到从中继日志没有开启,可以重新设定 ,用这个命令也可以查看到底哪里出现错误。然后根据以下操作在重新设定,在进行查看。
stop slave;
reset slave;
CHANGE MASTER TO
MASTER_HOST='192.168.200.66',
MASTER_USER='myslave',
MASTER_PASSWORD='123456',
MASTER_LOG_FILE='mysql-binlog.000001',
MASTER_LOG_POS=479;
然后 resart slave;
show slave status\G ; //再进行查看 主要是看Slave_IO_Running 与Slave_SQL_Running 是否为yes ,若是yes表示成功
》
-----------------------------------------------
C:
《考虑主服务器上有没有旧数据,如果有的话进行备份》从的服务器要进行导入数据
mysql -u root -p < /root/alldbbackup.sql //导入主服务器的数据
//从服务器连接主服务器进行测试,如果连接成功说明主库配置成功
mysql -u myslave -p123456 -h 192.168.200.66
//修改mysql 配置文件
vim /etc/my.cnf
server-id=3
relay-log=relay-log-bin
relay-log-index=slave-relay-bin.index
保存退出
////重启mariadb
systemctl restart mariadb
//连接mysql
mysql
stop slave; //停掉本身的从服务器功能
CHANGE MASTER TO
MASTER_HOST='192.168.200.66',
MASTER_USER='myslave',
MASTER_PASSWORD='123456',
MASTER_LOG_FILE='mysql-binlog.000001',
///////////////////////////////////通过在A主机中的数据库的show master status; 来查看日志的MASTER_LOG_FILE以及MASTER_LOG_POS的值是多少
MASTER_LOG_POS=479;
/////开启从服务器功能
start slave;
show slave status\G;
--------------------------------------------------
所有主机都执行
show databases; //查看3个数据库内容是否一致
在A主库中创建一个库
create database AB_DFF; //创建一个库
在所有主机进行查看show databases; //查看是否有这个库AB_DFF
=====================================================