ubuntu下的mysql5.7主从复制配置
环境:宿主机系统:windows7虚拟机:Oracle VMVirtualBoxLinux: ubuntukylin-14.04.1-amd64.isomysql:5.7.*虚拟主机2台MASTER: 192.16.41.9(主) mysql版本: 5.7.12 SLAVE: 192.16.41.7(从) mysql版本:5.7.14其他基础配置:
环境:
宿主机系统:windows7
虚拟机:Oracle VMVirtualBox
Linux: ubuntukylin-14.04.1-amd64.iso
mysql:5.7.*
虚拟主机2台
MASTER: 192.16.41.9(主) mysql版本: 5.7.12
SLAVE: 192.16.41.7(从) mysql版本:5.7.14
其他基础配置:
1.mysql的安装:http://blog.csdn.net/lanonola/article/details/51423249
2.ssh的安装,保持两台机器可互相通信:http://blog.csdn.net/lanonola/article/details/51384914
开始主从配置:
Step1:master部分数据准备
1.在master服务器上,创建专用备份账户:
mysql -uroot -p
GRANT REPLICATION SLAVE,RELOAD,SUPER ON *.* TO 'backuser'@'192.16.41.7' IDENTIFIED BY '123456';
2. 将主服务器的test库导出sql文件,并将sql文件拷贝到从服务器
mysqldump -u root -p test >/home/backup/test.sql
cd /home/backup
scp test.sql root@192.16.41.7:/home/backu/test.sql
Step2.slave部分数据准备
1.新建数据库,将主机上的备份数据拷贝到从机上
create database test;
mysql -h localhost -u root -p test</home/backup/test.sql;
show database;
use test;
show tables;
2.在从服务器上连接主服务器:mysql -ubackuser -h 192.16.41.9 -p.
Step3:配置master和slave的配置文件
1.master 部分
vi /etc/my.cnf
#[必须]启用二进制日志
log-bin=mysql-bin
#[必须]服务器唯一ID,默认是1,一般取IP最后一段
server-id=9
修改文件后,重启服务,让配置生效:sudo servicemysql restart
其他参数:
binlog-do-db=testdb #允许复制的数据库名称,一行代表一个数据库
binlog-ignore-db=mysql #不复制的数据库
查看主服务器状态:show slave master;
看到file和position,记录下来,后面需要用到。分别是mysql-bin.000008和1254
2.slave部分
vi /etc/my.cnf
#[可选]启用二进制日志
log-bin=mysql-bin
#[必须]服务器唯一ID,默认是1,一般取IP最后一段
server-id=152
修改文件后,重启服务,让配置生效:sudo service mysql restart
其他参数:
replicate-do-db=testdb
replicate-ignore-db=mysql
然后关闭slave同步进程
stop slave;
change master to master_host='192.16.41.9',master_user='backuser',master_password='123456',master_log_file='mysql-bin.000008',master_log_pos=1254;
start slave;
show slave status;
这两个参数必须都是yes。
如果有错误,则stop slave,排错,然后showmaster status;
将最新的file和pos信息给从机:
change master to master_host='192.16.41.9',master_user='backuser',master_password='123456',master_log_file='mysql-bin.000008',master_log_pos=1254;
start maser;
如此,直到成功。
Step4:测试 (略)
在主库新建表,并对表进行insert,update,delete操作,从库实现同步更新。
此时并未实现读写分离,从库可以进行insert,update,delete操作,主库未同步更新。
注意:
使用分布式mysql数据库时,
my.cnf必须去掉bind_address=127.0.0.1,注释掉即可。
然后更改mysql的权限,进入mysql命令端,
use mysql;
把root账户的localhost改为%
update mysql.user set host="%" where user=root;
接着刷新下权限;
flush privileges;
更多推荐
所有评论(0)