实验环境
- 主库机器IP:
10.10.10.248 - 从库机器IP:
10.10.10.166 - 数据库版本:
Mysql 5.6 - 操作系统:
Ubuntu 14.04
配置主库
修改/etc/mysql/my.cfg配置,在[mysqld]下面添加:
1 | # 启动二进制文件 |
保存后重启mysql:
1 | sudo /etc/init.d/mysql restart |
创建一个用户,并授权给从服务器
登录mysql
1 | mysql -uroot -p |
创建用户kyg并授权给从服务器:
1 | grant replication slave on *.* to 'kyg'@'10.10.10.166' identified by 'kyg'; |

最后别忘了刷新权限:
1 | flush privileges; |
查看主库状态
1 | show master status; |
记录下File和Position的值,后面配置从库时会用到

配置从库
修改/etc/mysql/my.cfg配置,在[mysqld]下面添加:
1 | # 从库ID |
保存后重启mysql:
1 | sudo /etc/init.d/mysql restart |
登录mysql,并配置相关参数:
1 | change master to |
查看从库状态
1 | show slave status \G; |
会发现从库还没开启复制

这时候就需要开启从库的复制功能start slave;

上面的截图再往下滚动, 可能会看见报错:
1 | error connecting to master 'kyg@10.10.10.248:3306' - retry-time: 60 retries: 7 |
这是由于主库配置了bind-address:127.0.0.1, 为了简单,我直接把这一行配置注释了(有安全隐患)
停止从库的复制功能:
1 | stop slave |
测试
在主库创建一个数据库blog
然后在从库中查看所有数据库
1 | show databases; |

会发现从库从主库中复制了一个数据库, 实验已经成功,其他CRUD请自行实验