Mysql 主从复制 及 一些要注意的特殊设置

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mysql 主从复制 及 一些要注意的特殊设置相关的知识,希望对你有一定的参考价值。

0.准备


A.安装数据库: 主从mysql数据库 (mysql server)都安装好:

版本上,mysql 允许 低版本master 配 高版本slave

https://dev.mysql.com/doc/refman/5.7/en/replication-compatibility.html

当然版本一致是最好了。


B.表同步和数据同步:在从数据库(slave),对 主数据库(master)的表进行数据同步和结构同步(如果只主从复制特定表格,则只针对特定表格同步就行,之后会讲如何配置)

用个navicat一类的工具可以很轻松地做 数据同步和结构同步


1.配置主从模式:


可以参照这位大神的文章:


itwork 的BLOG

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://369369.blog.51cto.com/319630/790921



2.一些小细节:

配置文件怎么找:

windows:  以5.7为例,配置文件位置为:ProgramData\MySQL\MySQL Server 5.7\my.ini

ubuntu:  vi /etc/mysql/my.cnf


mysql如何重启:

Ubuntu: /etc/init.d/mysql restart

windows: 可以从任务管理器服务里,找到mysql,或者用cmd:"net stop mysql57" "net start mysql57"


如果仅仅同步几个table:

slave数据库配置里,使用replicate-do-table 配置,有几个table写几条:

replicate-do-table=db_name.table_name

replicate-do-table=db_name.table_name

修改后记得重启mysql

请注意:db_name 和 table_name 都是 slave数据库本地的db和table名字,不要用master的名字!!

(卡了我好久都没发现错误。。。双方已经联通,然而表的修改监控被filter掉了。。)


如果master数据库的名字 和 slave的不一样:

比如master 叫 db123 , slave的叫 db456。

slave数据库配置里,使用replicate-rewrite-db 配置:

replicate-rewrite-db=db123->db456

做一个简单的名字重写就好。

修改后记得重启mysql。


如果你是VMWare虚拟机做为slave:

编辑slave的另一配置文件,

vi /etc/mysql/mysql.conf.d/mysqld.cnf

将  “bind-address   = 127.0.0.1 ” 这一行 注释掉


如何debug:

a.多查看 server Logs(如果在用 mysql workbench, 点击management,在“instance”栏下找到 server Logs), 里面会提示很多 warning 和 errors,根据错误搜索答案。

b. mysql 官方教学,一步一步查,一些常用指令就可以找到问题所在:

https://dev.mysql.com/doc/refman/5.7/en/replication-problems.html



3.资料参考:

这是mysql配置文件的配置项手册:

https://dev.mysql.com/doc/refman/5.7/en/replication-options-slave.html


本文出自 “10259463” 博客,请务必保留此出处http://10269463.blog.51cto.com/10259463/1932063

以上是关于Mysql 主从复制 及 一些要注意的特殊设置的主要内容,如果未能解决你的问题,请参考以下文章

redis主从之全量复制及增量复制

mysql习惯及主从复制参数设置

MySQL高可用配置(主从复制)

mysql主从复制架构及实现

mysql主从备份及常见问题处理

MySQL主从复制原理及配置过程