一、主从同步简介
1. 主从同步机制
Mysql服务器之间的主从同步是基于二进制日志的机制,主服务器使用二进制日志来记录数据库的变动情况,从服务器通过读取和执行该日志文件来保持和主服务器数据的一致。
在使用二进制日志时,主服务器的所有操作都会被记录下来,然后从服务器会接收到该日志的一个副本。从服务器可以指定执行该日志中的哪一类时间(譬如只插入数据或者只更新数据),默认为执行日志中的所有语句。
2. 主从同步的配置步骤总结
1).在主服务器上,必须开启二进制日志机制和配置一个独立的ID
2).在每一个从服务器上,配置一个唯一的ID,创建一个用来专门复制主服务器数据的账号
3).在开始复制进程前,在主服务器上记录二进制文件的位置信息
4).如果在开始复制之前,数据库中已经有数据,就必须先创建一个数据快照(可以使用mysqldump导出数据库,或者直接复制数据文件)
5).配置从服务器要连接的主服务器的IP地址和登陆授权,二进制日志文件名和位置
二、配置主从服务器
主库:192.168.230.1
从库:192.168.230.2
两个数据库都安装了相同版本Mysql数据库,且都可以从远程连接以及访问
1. 主库配置
1)、
修改mysql配置文件 /etc/my.cnf(编辑:vi /etc/my.cnf),这部分一定要配置在[mysqld]后面
server-id=1 #设置服务器id,为1表示主服务器,注意:如果原来的配置文件中已经有这一行,就不用再添加了。
log-bin=mysql-bin #启动MySQ二进制日志系统,注意:如果原来的配置文件中已经有这一行,就不用再添加了。
binlog-do-db=elp #需要同步的数据库名,如果有多个数据库,可重复此参数,每个数据库一行
binlog-ignore-db=mysql #不同步mysql系统数据库
:wq强制保存配置
2)、重启mysql服务(不同系统重启命令有差别)
service mysql.server restart
3)、登陆主库mysql
mysql -u root -p (然后输入数据库密码登陆)
4)、进入主库之后给主数据库授权一个可以进行复制的账号,执行命令如下:
grant replication slave on *.* to 'rep'@'192.168.230.%' identified by '123456'; #注意:用户名slave和密码123456可以自定义
5)、查看是否创建成功
use mysql;
select user ,host from user;
6)、查看my.cnf中配置的server-id是否成功
mysql> show variables like 'server_id';
7)、查看主库信息
mysql> show master status;
注意:记录下这些值,在从库配置的时候要用到
8)、迁移数据,将主库的elp数据复制到从库,保证主从库拥有两个一样的数据库elp
2. 从库配置
1)、 修改mysql配置文件 /etc/my.cnf(编辑命令:vi /etc/my.cnf),这部分一定要配置在[mysqld]后面server-id=2 #设置服务器id,为2表示从服务器(也可以为其他值),注意:如果原来的配置文件中已经有这一行,就不用再 添加了。
:wq强制保存配置
注意 : 重启下mysql服务
进入mysql查看是否配置成功
2)、登录到从库的数据库,做同步设置(此处要用到上面7)中记录的数据)
mysql> slave stop; #先关闭库服务
#注意:语句中的逗号不要有空格,可以连在一起写,(为了方便阅读做了换行)
mysql> slave start; #再启动库服务
3)、测试同步结果
在主库elp中新建一个表test,然后看下从库是否相应生成对应的test表,如果生成了那么恭喜你,主从同步配置就成功了。
4)、查看状态
mysql> show slave status \G