MySQL主从复制
配置主从复制的前提,是主从两个MySQL版本号最好一致。然后我们来看看如何配置:
- 修改主数据库配置文件my.cnf(or my.ini) - 开启二进制日志 设置server_id=1 重启主服务器MySQL服务 
- 修改从数据库配置文件my.cnf(or my.ini) - 设置server_id=2 重启从服务器MySQL服务 
- 在主数据库新建一个用来复制的用户(下划线处可自定义) 
| 1 | CREATE USER 'repl'@'%(此处也可定义为自己的从服务器IP)'IDENTIFIED BY 'slavepass'; | 
- 在新建数据快照或者开启复制进程之前,需要定位主服务器二进制日志的坐标
| 1 | mysql> FLUSH TABLES WITH READ LOCK; --对于InnoDB表,该操作还会锁定commit操作 | 
- 若你的主数据库已经存有数据,并且你希望从服务器同步这些数据。那么你需要新建一个数据快照。一般新建数据快照的方式有两种:MySQLdump;直接拷贝数据文件。
| 1 | shell> mysqldump --all-databases --master-data > dbdump.db --该事例表示将所有数据库导出到一个名为dbdump.db的文件中,附加的 --master-data命令,官方文档解释了一大堆,看着似懂非懂,反正都加上吧-。- 如果你的数据库比较大,那么将原始数据文件直接复制到从服务器比使用mysqldump要效率很多。 | 
- 解锁主数据库
| 1 | mysql> UNLOCK TABLES; | 
- 将主数据库的dump出的文件导入到从服务器
| 1 | shell> mysql < dbdump.db | 
- 在从服务器开启复制进程
| 1 | mysql> START SLAVE; --一般情况下是启动不了的,必须先change master to |