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
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
相关文章推荐
- MySQL重置密码以及优化
- mysql保存中文乱码的原因和解决办法
- MYSQL: Cannot delete or update a parent row: a foreign key constraint fails
- mysql 索引底层实现
- mysql的性能查询相关
- 更改MySQL数据库存储路径(datadir)
- MySQL 错误:cant't connect to MySQL server (10060)
- ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock'
- ubuntu 在配置MySQL维修
- Mysql服务器
- Mysql注释方法
- mysql备份与恢复
- mysql problems
- MySQL Proxy使用
- MySQLCluster集群部署(MySQLCLUSTER 7.4.7)
- 安装mysql数据库
- mysql 分析查找执行效率慢的SQL语句
- mysql学习------二进制日志
- mysql备份
- 21分钟 MySQL 入门教程