您的位置:首页 > 数据库 > MySQL

MySQL主从复制

2015-10-10 11:02 811 查看
主在执行sql语句后,记录一个二进制log文件(bin-log),从连接主,并获取到bin-log,存在到本地的relay-log上,并从上一次记录的位置执行sql,当遇到错误则停止同步。
PS:主从并不是实时同步,存在瞬间连接;当在网络断开后,正常后批量同步;修改从上的数据容易导致主上的bin-log错误而停止同步,所以从上的数据注意修改。

一,主从服务器安装Mysql,具体参考Mysql配置
二、配置主从
1.在从salve端配置vim /etc/my.cnf datadir = /data/mysql ##此处为安装时定义的位置 server-id=2 replicate-do-db=db1,db2 ##需要同步的库 replicate-ignore-db=db1,db2 ##不需要同步的库 ##PS 同步库的参数2选1,需对应主的my.cnf配置是哪个参数屏蔽以下参数,不需要使用: skip-bdb skip-networking log-bin=node1-bin
binlog-ignore-db=test,mysql
master-host=XXXXXXX
master-password=XXXXXX
master-connect-retry=XXX
mysql.server以及mysqld_safe 模块的内容屏蔽

##配置从的启动配置文件
vim /etc/init.d/mysqld ##修改2行参数
basedir=/usr/local/mysql
datadir=/data/mysql

2.在主master端,修改配置文件vim /etc/my.cnf
##开启以下参数:
server-id =1
log-bin=mysql-bin
binlog-do-db=db1,db2 ##需要同步的库
binlog-ignore-db=db1,db2 ##不需要同步的库
##同步库的参数2选1,或可都不使用,按实际需求
##使用mysql命令,repl、ip、密码均为为从slave的账号、IP以及密码I grant replication slave on *.* to ‘repl’@192.168.137.111’ identified by ‘123456’;
##创建后,可以测试slave端是否可以链接到主master端,在salve使用命令:
mysql -urepl –p123456 –h主Master的IP
##若加上-P为指定端口,默认为3306
##回到主master端,锁表flush tables with read lock;show master status; ##需记下file、Position列的值quit ##备份数据库db1为数据库名称,并cp到从slave上mysqldump –uroot –p123456 db1 > 1.sqlscp –P36000 1.sql root@192.168.137.111:/root/ ##拷贝到从上的root目录下-P为指定端口 3.在从slave端上:
##创建db1的库
mysql -uroot -e “create database db1;”
mysql -uroot db1 </root/1.sql
##使用mysql命令,mysql操作
mysql
slave stop;
change master to master_host=’192.168.137.110’,master_port=3306,master_user=’repl’,master_password=’123456’, master_log_file=’主master端记录的file列值’, master_log_pos=’ 主master端记录的position的列值’##PS如果这段运行报错,把/data/mysql目录的XXbinXX的文件删掉即可回到slave stop继续
slave start;###回到主master端
mysql –uroot –e “unlock tables;”
###回到从slave端
mysql -uroot –e “show slave status\G;”
若Slave_IO_Running以及Slave_SQL_Running都为YES表示成功,否则为失败

4.测试主从
在主端创建表、删除表等等,在从端可查询

5.注意
主从配置起来很简单,但是这种机制也是非常脆弱的,一旦我们不小心在从上写了数据,那么主从也就被破坏了。另外如果重启master,务必要先把slave停掉,也就是说需要在slave上去执行 slave stop 命令,然后再去重启master的mysql服务,否则很有可能就会中断了。当然重启完后,还需要把slave给开启 slave start

本文出自 “linux小记” 博客,请务必保留此出处http://lstulinux.blog.51cto.com/3938932/1701470
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: