做信息类网站,广州市官网网站建设,ip上海官网,建设门户网站培训通知主从复制
复制的基本原理
slave会从master读取binlog来进行数据同步 MySQL复制过程分成三步#xff1a;
master将改变记录到二进制日志(binary log)。这些记录过程叫做二进制日志事件#xff0c;binary log events;slave将master的binary log events拷贝到它的中继日志(r…主从复制
复制的基本原理
slave会从master读取binlog来进行数据同步 MySQL复制过程分成三步
master将改变记录到二进制日志(binary log)。这些记录过程叫做二进制日志事件binary log events;slave将master的binary log events拷贝到它的中继日志(relay log) ;slave重做中继日志中的事件将改变应用到自己的数据库中。MySQL复制是异步的且串行化的
复制的基本原则
每个slave只有一个master每个slave只能有一个唯一的服务器ID每个master可以有多个salve
复制的最大问题是延迟。
一主一从常见配置
准备工作
一、mysql版本一致且后台以服务运行
二、主从都配置在[mysqld]结点下都是小写
服务器配置
一、主机修改my.cnf配置文件
1.、[必须]主服务器唯一ID
server-id12、[必须]启用二进制日志指定日志存放位置
log-bin/var/lib/mysql/mysql-bin3、 [可选]启用错误日志
log-err自己本地的路径/mysqlerr4、[可选]根目录
basedir本地路径5、[可选]临时目录
tmpdir“自己本地路径”6、[可选]数据目录
datadir“自己本地路径/Data/”7、主机读写都可以
read-onlyO8、[可选]设置不要复制的数据库
binlog-ignore-dbmysql9、[可选]设置只复制某个数据库
binlog-do-db需要复制的主数据库名字二、从机修改my.cnf配置文件
1、[必须]从服务器唯一ID
server-id22、[可选]启用二进制日志
log-bin/var/lib/mysql/mysql-bin三、配置文件请主机从机都重启后台mysql服务
linux中
service mysql stop
service mysql start如果你和我一样是用的docker容器可以这样重启
docker restart xxxxxx四、在主机上建立帐户并授权slave
在主服务器上执行此命令允许从服务器使用指定的用户名和密码连接到主服务器并读取二进制日志进行数据复制。
创建用户并设置密码
CREATE USER xxxx从机器数据库IP IDENTIFIED BY 123456;授予用户复制权限
GRANT REPLICATION SLAVE ON *.* TO xxxx从机器数据库IP;刷新权限
FLUSH PRIVILEGES;GRANT 是MySQL中的一个命令用于授予用户特定的权限。REPLICATION SLAVE 是授予的权限类型允许指定用户读取主服务器的二进制日志以便进行数据复制。ON *.* *.*表示权限适用于所有数据库和所有表。也就是说这个用户可以访问主服务器上的所有数据库进行复制操作。TO xxxx从机器数据库IPxxxx是要创建或更新的用户名不要使用rootIDENTIFIED BY 用于设置或更新指定用户的密码123456 是该用户的密码。
查询master的状态
show master status;记录下File和Position的值 执行完此步骤后不要再操作主服务器MYSQL防止主服务器状态值变化
五、在Linux从机上配置需要复制的主机
在MySQL命令行中执行以下命令
CHANGE MASTER TO MASTER_HOST主机IP,
MASTER_USERxxxx,
MASTER_PASSWORD123456,
MASTER_PORT3306,
MASTER_LOG_FILEFile文件名,
MASTER_LOG_POSPosition数字;启动从服务器复制功能
start slave;查看主从配置状态
show slave status\G下面两个参数都是Yes则说明主从配置成功! 如果上面的position输错了可以重置
reset slave;然后暂停主从复制
stop slave;重新配置
CHANGE MASTER TO MASTER_HOST主机IP,
MASTER_USERxxxx,
MASTER_PASSWORD123456,
MASTER_PORT3306,
MASTER_LOG_FILEFile文件名,
MASTER_LOG_POSPosition数字;然后开启
start slave;六、主机新建库、新建表、insert记录从机复制
主机输入
CREATE DATABASE testdb;
USE testdb;
CREATE TABLE testtable (id INT PRIMARY KEY, value VARCHAR(50));
INSERT INTO testtable VALUES (1, Hello World);从机自动同步 七、如何停止从服务复制功能
stop slave;如果有一段数据暂时不要从机可以停止主从复制后从主机那里查询新的position刻度重新开始复制。