主服务器用的linux环境 ip:192.168.56.200
从服务器用的win7环境 ip: 192.168.1.18
前提条件:
两服务器互相能ping通,可以访问对方mysql服务。主从服务器同时创建一个同名数据库test,内部结构需完全相同。
1. 配置主服务器:
1. 创建一个可供从服务器访问的账号,host可设置为从服务器ip,我这里嫌麻烦直接设置为%(匹配所有ip),设置账号密码。
GRANT REPLICATION SLAVE,FILE ON *.* TO 'mstest'@'192.168.1.18' IDENTIFIED BY '123456';
2. 修改my.cnf文件
vi my.conf
i键修改
server-id = 1 //主服务器id为1,必须与从服务器区别开
log_bin=mysql-bin //开启二进制日志文件
binlog-do-db = test //要同步的数据库
esc退出编辑
:x保存退出
3. 重启mysql服务: service mysql restart
配置完成后,show master status 查看主服务器配置
2. 配置从服务器
log-bin=mysql-bin
server-id=2
binlog-do-db=test 同步数据库
binlog-ignore-db=mysql 忽略同步
关键一步:
在mysql命令行配置master信息:
mysql>change master to
master_host='192.168.56.200',
master_port=3306,
master_user='mstest',
master_password='123456',
master_log_file='mysql-bin.000001', // show master status file值
master_log_pos=107; //show master status pos值
配置完成后:show slave status \G 查看从服务器配置
Slave_IO_Running:yes
Slave_SQL_Running: yes
表示配置成功!
主从配置相关命令:
数据迁移时:
FLUSH TABLES WITH READ LOCK; 对数据库加锁
mysqldump -u root -p -databases db1 db2 > bak.sql 备份数据库
从服务器:
stop slave 停止同步
reset slave 删除所有旧的同步日志,使用新日志重新开始。慎用,清空slave配置信息、日志、同步position
start slave 开始同步
show slave logs;
show slave status \G 查看从服务器状态
主服务器:
show master status 查看主服务器状态
reset master 主机端运行,清除所有的日志,这条命令就是原来的flush master 慎用