实验环境
- 主库机器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请自行实验