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