一、Mysql主从介绍
1、用于Mysql的实时备份或读写分离,在A上写数据,B机器也跟着写数据,实时同步。
二、配置主
1、修改/etc/my.cnf文件
datadir=/data/mysql
socket=/tmp/mysql.sock
server-id=130
log_bin=aminglinux1
2、重启mysql服务
/etc/init.d/mysqld restart
3、备份一个数据库,在创建一个数据库,将之前备份的zrlog.sql恢复到aming库
mysqldump -uroot -paminglinux zrlog > /tmp/zrlog.sql
mysql -uroot -paminglinux -e "create database aming"
mysql -uroot -paminglinux aming < /tmp/zrlog.sql
4、创建用户
grant replication slave on *.* to 'repl'@'192.168.134.150' identified by 'nihaoma'; 给予权限
flush tables with read lock; 锁表,不再写数据
show master status;
5、备份数据库
mysqldump -uroot -paminglinux mysql2 > /tmp/mysql2.sql
mysqldump -uroot -paminglinux test > /tmp/test.sql
三、配置从
1、配置 /etc/my.cnf
basedir = /usr/local/mysql
datadir = /data/mysql
server-id=150
2、复制主机上的备份文件到从上
scp 192.168.134.130:/tmp/*.sql /tmp
3、创建相应库并恢复
create database aming; mysql -uroot aming < /tmp/zrlog.sql
create database mysql2; mysql -uroot mysql2 < /tmp/mysql2.sql
create database test; mysql -uroot test < /tmp/test.sql
create database zrlog; mysql -uroot zrlog < /tmp/zrlog.sql
4、在从库上执行以下命令:
stop slave;
change master to master_host='192.168.134.130', master_user='repl', master_password='nihaoma', master_log_file='amingl
inux1.000001', master_log_pos=10570;
start slave;
5、查看是否配置成功,有两个yes则成功。
show slave status\G
6、回到主机打开表
unlock tables; 恢复写操作
四、主从测试
1、左边图为主Mysql,右边图为从Mysql
清空 help_topic 表的数据,在从机器上看也被清空了
删除主mysql上的help_topic表后,从表上也没有了。
2、如果误操作,先删除或者清空了从mysql的数据,导致主从不同步。如下图:
可以先尝试 stop slave; start slave; 如果还是不行,则重新开始做主从。
首先执行 show master status;查看数据。然后在从mysql上从change 语句开始操作就可以了。