配置与相关概念
一.复制基本原理
- slave会从master读取binlog来进行数据同步
- 三步骤和原理图:
1.master将改变记录到二进制日志(binary log),这些记录过程叫二进制日志事件,binary log events。
2.slave将master的binary log events拷贝到它的中继日志(relay log)。
3.slave重做中继日志中的事件,将master的改变应用到自己的数据库中,mysql复制是异步且串行化的。
二.一主一从常见配置
- windows的mysql版本(master)与linux的mysql版本(slave)一致且后台以服务运行。
- 确保window和linux可以相互ping通。
- 主从都配置在[mysqld]结点下,都是小写。
1.主机(windows)修改my.ini配置文件
-
[必须]设置主服务器唯一ID:
server-id = 1; -
[必须]启用二进制日志;
log-bin=自己本地mysql的路径/data/mysqlbin,示例如下:
-
[可选]启用二进制日志
log-err=自己本地mysql的地址/data/mysqlerr,示例如下:
-
[可选]根目录
basedir=“自己本地mysql路径”,示例如下:
-
[可选]临时目录
tmpdir=“自己本地mysql路径”,示例同根目录一样。 -
[可选]数据目录
datadir=“自己本地mysql地址/data/” -
read-only=0:主机,读写都可以
-
[可选]设置不要复制的数据库
binlog-ignore-db=mysql -
[可选]设置需要复制的数据库
-
binlog-do-db=需要复制的数据库名字
2.从机(linux)修改my.cnf配置文件
-
[必须]设置从服务器唯一ID
server-id=与master服务器ID不同,例如以上的master服务器ID为1,则slave服务器ID可以设为2. -
[可选]启用二进制日志
-
由于修改了配置文件,建议主机和从机都重启mysql服务。
-
保证主机和从机都关闭防火墙。
3.在windows主机上建立帐户并授权slave
-
GRANT REPLICATION SLAVE ON . TO ‘用户名’ @ ‘从数据库IP’ IDENTIFIED BY ‘密码’;示例如下:
-
flush privileges 刷新
-
查询master状态
show master status,示例如下:
说明:主机数据库从mysqlbin.000035文件的341行这个位置开始复制数据。
4.在linux从机上配置需要复制的主机
change master to master_host='端口号',
master_user='主机用户',
master_password='主机密码',
master_log_file='主机二进制文件名',master_log_pos=‘起始行数’.
示例如下:
- 启动从服务器复制功能:start slave;
- show slave status\G,以下两个参数都为yes,则说明主从配置成功
Slave_IO_Running:Yes
Slave_SQL_Running:Yes - stop slave,停止从服务器复制功能