mysql 主从服务器快速简单配置

  1. 修改配置文件开启服务器二进制日志(实际就是开启集群功能了),配置服务器id
    log-bin=mysql_bin_log #文件名随意 log-bin or log_bin
    server_id=220 #默认为1
  2. 授予从服务器复制权限
    mysql > Grant replication slave on *.* to ‘root’@’%’ identified by ‘root’;
    mysql > flush privileges;
    mysql > show master status; — 查看主服务器状态
    显示形如 mysql > mysql_bin_log.000001   628 ,
    其中,mysql_bin_log.000001 是日志文件名,628是position ,这两个是关键的,后面配置从服务器时要用到。
  3. 修改配置文件开启从服务器二进制日志,配置服务器id
    log_bin=mysql_bin_log #不是必须的,设置后其也可以作为主服务器
    server_id=247 #默认为1
    然后重启服务;
  4. 给从服务器配置主服务器
    mysql > change master to master_host=’192.168.199.220′,master_user=’root’, master_password=’root’, master_log_file=’mysql_bin_log.000001′, master_log_pos=628
    其中,master_log_file就是2步中提到的日志文件名,master_log_pos就是2步中提到的position
  5. 启用从服务器“从服务器服务slave”
    mysql > start slave;
    mysql > show slave status; — 查看从服务器状态

OK ,Enjoy!

PS:而后主服务器数据变化会同步到从服务器,从服务器数据变化后不会被覆盖。同步的是操作。如:
主服务器: insert t1 values(1)   而后,从服务器t1表增加一条记录
从服务器: insert t1 values(1)   主服务器不变,从服务器有两条记录
主服务器: update t1 set id=11 where id=1  主服务器的1条记录id由1变为11,从服务器的2条记录id也由1变为11。


使用下面的语法,可选择性的同步。

CHANGE REPLICATION FILTER filter[, filter][, ...]

filter:
      REPLICATE_DO_DB = (db_list)
    | REPLICATE_IGNORE_DB = (db_list)
    | REPLICATE_DO_TABLE = (tbl_list)
    | REPLICATE_IGNORE_TABLE = (tbl_list)
    | REPLICATE_WILD_DO_TABLE = (wild_tbl_list)
    | REPLICATE_WILD_IGNORE_TABLE = (wild_tbl_list)
    | REPLICATE_REWRITE_DB = (db_pair_list)

例如想要只同步数据库db:change replication filter REPLICATE_DO_DB=(db) #括号是必须的

发表评论

电子邮件地址不会被公开。