一、复制原理
mysql进行主备复制使用到了三个线程:
1.主库上的转存储线程:
会将mysql server提交的事务写入到二进制文件中,这个二进制文件就叫做binlog。
2.备库上的连接线程:
备库启动后,负责和主库通信,读取binlog,同时,将binlog存储进自己的一个叫中继日志的relaylog中。
3.备库上的relaylog重放线程:
此线程会将relaylog中的事件在备库上进行回放,说白点就是重新执行一次
二、配置MySQL主服务器
mysql -uroot -p
grant replication slave on *.* to 'osyunweidbbak'@'192.168.21.168' identified by '123456' with grant option;
vi /etc/my.cnf
server-id=1
log_bin=mysql-bin #启动MySQ二进制日志系统
binlog-do-db=osyunweidb #需要同步的数据库名,如果有多个数据库,可重复此参数,每个数据库一行
binlog-ignore-db=mysql #不同步mysql系统数据库
service mysqld restart
mysql -u root -p
show master status; # 注意:这里记住File的值和Position的值,后面会用到。
三、配置MySQL备服务器
vi /etc/my.cnf
server-id=2
log-bin=mysql-bin
replicate-do-db=osyunweidb
replicate-ignore-db=mysql
service mysqld restart
mysql -u root -p
slave stop;
change master to master_host='192.168.21.169',master_user='osyunweidbbak',master_password='123456',master_log_file='mysql-bin.000019' ,master_log_pos=7131; #执行同步,这里用上刚才的File的值和Position的值
slave start;
四、验证
(1)服务验证
MySQL备服务器
mysql -u root -p
SHOW SLAVE STATUS\G
注意查看Slave_IO_Running: Yes;Slave_SQL_Running: Yes
(2)建表验证
.MySQL主服务器
mysql -u root -p
use osyunweidb
CREATE TABLE test ( id int not null primary key,name char(20) );
.MySQL备服务器
mysql -u root -p
use osyunweidb
show tables;
五、导出导入
导出
flush tables with read lock;
mysqldump -u root -p osyunweidb > /home/osyunweidbbak.sql (导出数据库osyunweidb)
unlock tables;
导入
mysql -u root -p
create database osyunweidb;
use osyunweidb
source /home/osyunweidbbak.sql
参考:http://www.cnblogs.com/cchun/p/3712637.html
mysql进行主备复制使用到了三个线程:
1.主库上的转存储线程:
会将mysql server提交的事务写入到二进制文件中,这个二进制文件就叫做binlog。
2.备库上的连接线程:
备库启动后,负责和主库通信,读取binlog,同时,将binlog存储进自己的一个叫中继日志的relaylog中。
3.备库上的relaylog重放线程:
此线程会将relaylog中的事件在备库上进行回放,说白点就是重新执行一次
二、配置MySQL主服务器
mysql -uroot -p
grant replication slave on *.* to 'osyunweidbbak'@'192.168.21.168' identified by '123456' with grant option;
vi /etc/my.cnf
server-id=1
log_bin=mysql-bin #启动MySQ二进制日志系统
binlog-do-db=osyunweidb #需要同步的数据库名,如果有多个数据库,可重复此参数,每个数据库一行
binlog-ignore-db=mysql #不同步mysql系统数据库
service mysqld restart
mysql -u root -p
show master status; # 注意:这里记住File的值和Position的值,后面会用到。
三、配置MySQL备服务器
vi /etc/my.cnf
server-id=2
log-bin=mysql-bin
replicate-do-db=osyunweidb
replicate-ignore-db=mysql
service mysqld restart
mysql -u root -p
slave stop;
change master to master_host='192.168.21.169',master_user='osyunweidbbak',master_password='123456',master_log_file='mysql-bin.000019' ,master_log_pos=7131; #执行同步,这里用上刚才的File的值和Position的值
slave start;
四、验证
(1)服务验证
MySQL备服务器
mysql -u root -p
SHOW SLAVE STATUS\G
注意查看Slave_IO_Running: Yes;Slave_SQL_Running: Yes
(2)建表验证
.MySQL主服务器
mysql -u root -p
use osyunweidb
CREATE TABLE test ( id int not null primary key,name char(20) );
.MySQL备服务器
mysql -u root -p
use osyunweidb
show tables;
五、导出导入
导出
flush tables with read lock;
mysqldump -u root -p osyunweidb > /home/osyunweidbbak.sql (导出数据库osyunweidb)
unlock tables;
导入
mysql -u root -p
create database osyunweidb;
use osyunweidb
source /home/osyunweidbbak.sql
参考:http://www.cnblogs.com/cchun/p/3712637.html