原理:
MySQL主要根据二进制文件进行同步;主数据库将记录写进自己的二进制文件,备数据库通过获取主数据库二进制文件并转换成SQL语句后执行,从而实现主从复制。
本人用途:
在主数据库无法停止运行进行数据备份的情况下,可以暂停备数据库,对数据进行备份操作
配置:
| 主机名 | IP地址 | 服务器版本 | MySQL版本 |
| DB1(主) | 192.168.56.103 | RedHat 6.4 | 5.1.73 |
| DB2(备) | 192.168.56.104 | RedHat 6.4 | 5.1.73 |
MySQL安装:
https://blog.youkuaiyun.com/qq_15993903/article/details/86623029
操作步骤:
1.修改MySQL配置文件my.cnf,注意在[mysqld]以下增加
[root@localhost ~]# vim /etc/my.cnf
DB1,增加以下内容
log-bin = /var/lib/mysql/mysql-bin #数据库安装路径,启动二进制文件
server-id =1 #唯一ID
log_slave_updates=1 #开启主主同步
bing-do-db=yang #待同步的数据库
DB2,增加以下内容
log-bin = /var/lib/mysql/mysql-bin #数据库安装路径,启动二进制文件
server-id =2 #唯一ID(与主id区分)
log_slave_updates=1 #开启主主同步bing-do-db=yang #待同步的数据库
重启数据库服务:
[root@localhost ~]# service mysqld restart
![]()
如MySQL无法启动,则检查my.cnf是否正确配置(去掉注释)
查看MySQL目录是否生成 mysql-bin.* 文件
[root@localhost ~]# cd /var/lib/mysql/
[root@localhost mysql]# ls
2.创建复制用户
DB1中创建:授权来自BD2(192.168.56.104)通过mysql用户访问
[root@localhost mysql]# mysql -u root -proot
mysql> CREATE USER 'mysql'@'192.168.56.104' IDENTIFIED BY 'mysql';
mysql> GRANT REPLICATION SLAVE ON *.* TO 'mysql'@'192.168.56.104';
DB2中创建:授权来自BD1(192.168.56.103)通过mysql用户访问
[root@localhost mysql]# mysql -u root -proot
mysql> CREATE USER 'mysql'@'192.168.56.103' IDENTIFIED BY 'mysql';
mysql> GRANT REPLICATION SLAVE ON *.* TO 'mysql'@'192.168.56.103';
3.执行CHANGE MASTER TO语句,通过show master status确认
DB1执行:输入通过show master status在DB2查出的信息
CHANGE MASTER TO
MASTER_HOST='192.168.56.104',
MASTER_USER='mysql',
MASTER_PASSWORD='mysql',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=716;
DB2执行:输入通过show master status在DB1查出的信息
CHANGE MASTER TO
MASTER_HOST='192.168.56.103',
MASTER_USER='mysql',
MASTER_PASSWORD='mysql',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=356;
4.分别在BD1和DB2两端执行 start slave 和 show slave status\G 查看主从复制是否搭建成功
[root@localhost mysql]# service mysqld restart
[root@localhost mysql]#mysql -u root -proot
mysql> start slave;
mysql> show slave status\G
出现 Slave_IO_Running: Yes Slave_SQL_Running: Yes 说明成功
5.提供以下语句进行验证
create table cs01(
id INT NOT NULL AUTO_INCREMENT,
title VARCHAR(100) NOT NULL,
author VARCHAR(40) NOT NULL,
submission_date DATE,
PRIMARY KEY ( id )
);
INSERT INTO `cs01` (`title`, `author`, `submission_date`) VALUES ('cs01', 'cs01', '2019-01-25');

3202

被折叠的 条评论
为什么被折叠?



