【mysql】mysql主从复制

mysql主从复制配置

主服务器:192.168.0.100

从服务器

192.168.0.101

主服务器配置

my.ini(window下 linux 下是my.cnf)

#开启二进制日志

log-bin=mysql-bin

#给服务器起一个唯一的id

server-id=1

#指定日志格式

binlog-format=mixd

授权给从数据库服务器192.168.0.101
mysql> grant  replication client ,replication slave on *.* to test215@'192.168.1.101' identified by '123456';

查询主数据库状态
Mysql> show master status;

+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000008 | 998 | | |
+------------------+----------+--------------+------------------+

从服务器配置

#配置从服务器
log_bin=mysql_bin
server_id=2
relay_log=mysql-relay-bin
log_slave_updates=1
read_only=1

执行同步SQL语句
mysql>change master to master_host='192.168.1.215',

master_user='test215',

master_password='521521',

master_log_file='mysql-bin.000008',

master_log_pos=998;

正确执行后启动Slave同步进程
mysql> start slave;

主从同步检查
mysql> show slave status\G

当MySQL主从复制在 show slave status\G 时出现Slave_IO_Running或Slave_SQL_Running 的值不为YES时,需要首先通过 stop slave 来停止从服务器,

然后再执行一次上面步骤即可恢复,但如果想尽可能的同步更多的数据,可以在Slave上将master_log_pos节点的值在之前同步失效的值的基础上增大一 些,然后反复测试,直到同步OK。

因为MySQL主从复制的原理其实就是从服务器读取主服务器的binlog,然后根据binlog的记录来更新数据库

 

posted @ 2014-06-24 22:07  闲云-野鹤  阅读(234)  评论(0编辑  收藏  举报