主服务器数据库的每次操作都会记录在二进制日志文件mysql-bin.xxx中。 简答来说,二进制文件中,存的就是sql语句。(增、删、改这类sql)从服务器的I/O线程使用专用帐号登陆到主服务器中读取该二进制文件,并将文件内容写入到自己本地的中继日志relay-log文件中。然后从服务器的SQL线程会根据中继日志中的内容执行SQL语句。
数据库要求:在两个linux主机上分别安装mysql:
数据库 | 主机地址 |
---|---|
主数据库 | 192.168.2.253 |
从数据库 | 192.168.4.254 |
配置步骤
一.配置Master主数据库
1.授权给从数据库
刷新
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
2.修改主库配置
vim /etc/my.cnf
server-id:master端的ID号;
log-bin:同步的日志路径及文件名,一定注意这个目录要是mysql有权限写入的
binlog-do-db:要同步的数据库名
3.重启mysql服务器。(每次修改mysql配置,都需要重启)
[root@node8 ~]# service mysqld restart
4.查看主数据库的二进制文件名和偏移量
目的:是为了在从数据库启动后,从这个点开始进行数据的恢复。
mysql> show master status;
二.配置Slave从数据库
1.设置从库的server-id
vim /etc/my.cnf
2.如果从库是克隆过来的,则修改从库的uuid。
[root@node9 ~]# vim /var/lib/mysql/auto.cnf
3.使用命令配置从库
mysql> change master to
master_host='192.168.18.33',master_port=3306,master_user='replicator',master_password='123456',master_log_file='mysql-bin.000017',master_log_pos=120;
4.开启备份
mysql> start slave;
Query OK, 0 rows affected (0.00 sec)
5.查看从库状态
mysql> show slave status\G;
6.测试主从备份
1.在主库中创建cmdb数据库,并创建t_user表,插入一条数据。
2.在从库中查看是否同步成功。
同步成功!