我是在虚拟机测试的,提前准备两个虚拟机分别设置ip为:
master:192.168.90.222
slave:192.168.90.221
master服务器配置
首先修改master的数据配置文件在[mysqld]下添加如下代码:
server-id = 222 #配置的是服务器的id,id不能喝别的重复
log-bin = mysql-bin #开启mysql二进制日志
bin-log-do-db = test #需要备份的数据库,如有多项在写一行
master 的数据库配置文件修改好了之后在添加mysql用户,供slave服务器链接使用,sql如下:
grant replication slave on *.* to ‘backup‘@‘192.168.90.221‘ identified by ‘123456‘;
#backup 是用户名,192.168.90.221 是slave的ip地址;123456 是密码
重启mysql让配置生效!
slave服务器配置
修改slave数据库配置文件添加如下配置:
server-id = 221 # 从服务器id
master-host = 192.168.90.222 #master 数据库地址
master-port = 3306 #master数据端口号
master-user = backup #master 用户名
master-password = 123456 #master 数据库密码
replicate-do-db = test #需要做复制的数据库
replicate-ignore-table = test.t1 #跳过的表,此表不复制
slave-skip-errors = 1032,1062,125 #自动跳过的错误代码,以防止复制出错被中断
执行下面sql语句,建立于master的链接:
change master to master_host=‘192.168.90.222‘,master_user=‘backup‘,master_password=‘123456‘,master_log_file=‘mysql-bin.000003‘,master_log_pos=106;
master_log_file 和 master_log_pos的值通过在master数据库命令行中执行 show master status \G; 来查看
在slave数据库执行 start slave; 启动从链接
然后执行 show slave status \G;查看slave的状态如果发现
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
这两项位yes,则说明配置成功!
另外在主从复制的时候必须保证两个数据库一致!!!