MySQL数据库同步复制的功能主要体现在它的配置文件(liunx 下为/etc/my.cnf)上,其工作原理为slave端记录并且执行master端的操作日志。
一. 准备工作
需要准备2台主机,一台作为主服务器master,一台作为从服务器slave,信息如下:
主服务器:IP 10.0.10.21 /MySQL版本 5.5
从服务器:IP 10.0.10.22 /MySQL版本 5.5
注意:主从服务器的mysql版本最好保持一致。
二. 主服务器配置
1. 创建复制用户
单独新建一个用户,给其分配replication slave权限,该用户主要是给从服务器用的,从服务器slave会使用该用户连接到主服务器master。
echo "grant replication slave on *.* to '用户名'@'从服务器IP' identified by '密码';" | mysql -uroot -padmin
echo "flush privileges;" | mysql -uroot -padmin
其中,root和admin分别是管理员帐号和密码。
2. 编辑/etc/my.cnf文件
在/etc/my.cnf配置文件中加入如下配置项:
#服务器唯一标识
server-id=1
#需要备份的数据库名,如果备份多个数据库,重复设置这个选项即可
binlog-do-db=mysql1
#不需要备份的数据库名,如果备份多个数据库,重复设置这个选项即可
binlog-ignore-db=mysql2
#必须加上,否则从服务器的更新不会写到二进制文件里
log-slave-updates=1
#启动二进制日志系统,此处最好为绝对路径
log-bin=/var/lib/mysql/mysql-bin
#是否跳过错误,继续执行复制操作(可选)
slave-skip-errors=1
3. 重启数据库
service mysqld restart
三. 从服务器配置
1. 编辑/etc/my.cnf文件
在/etc/my.cnf配置文件中加入如下配置项:
#服务器唯一标识
server-id=2
#主服务器IP
master-host=10.0.10.21
#连接主服务器的用户
master-user=用户名
#连接主服务器的密码
master-password=密码
#主服务器端口
master-port=3306
#心跳时间(库同步间隔)
master-connect-retry=60
#需要同步的数据库
replicate-do-db=mysql1
2. 重启数据库
service mysqld restart
3. 开启同步
命令行进入mysql,输入命令start slave,开启slave同步功能。
至此,MySQL的主从复制就配置完成了。