参考链接
(我的mysql版本5.7.22,OS是Red Hat,但此OS版本对应的下载源都是rpm或tar,由于对rpm和tar包的安装不熟悉,导致在mysql安装环节花了大量时间。为了获取到tar.gz格式,最终采用的办法是‘Operating System’选项选用的是‘Linux-Generic’, 包类型为tar.gz)
具体操作步骤
主库操作
1 授权帐户,授权从库的ip
GRANT REPLICATION SLAVE ON *.* TO 'slaveaccount'@'127.0.0.1' IDENTIFIED BY 'slavepwd';
2 flush privileges;
3 reset master;
4 show master status;
从库操作 配置主库ip,端口,以及主库授权的帐户
stop slave;
reset slave;
change master to master_host='127.0.0.1',master_port=3306,master_user='slaveaccount',master_password='slavepwd',master_log_file='mysql-bin.000001';
start slave;
OK了,查看从库运行状态
show slave status \G;
注意事项 检查事项
1.主库(InnoDB) 从库(MyISAM)
###2、修改主服务器master:
#vi /etc/my.cnf
[mysqld]
log-bin=mysql-bin //[必须]启用二进制日志
server-id=222 //[必须]服务器唯一ID,默认是1,一般取IP最后一段
1
2
3
4
###3、修改从服务器slave:
#vi /etc/my.cnf
[mysqld]
log-bin=mysql-bin //[不是必须]启用二进制日志
server-id=226 //[必须]服务器唯一ID,默认是1,一般取IP最后一段
-------------配置文件Demo(Windows) Begin------------
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
[mysql]
default-character-set=utf8
[mysqld]
character-set-server=utf8
port=3318
# 默认存储引擎innoDB,从库可设置MyISAM
default-storage-engine=INNODB
# 配置数据库服务器id,主从配置中必须唯一。
server-id=1
# 配置mysql的安装路径
basedir=C:\\mysql\\mysql-5.7.28-winx64\\master01
# 配置mysql的数据库文件存放位置。也即mysql data的存放位置。
datadir=C:\\mysql\\mysql-5.7.28-winx64\\master01\\data
# 配置可访问mysql服务的机器ip地址信息。 0.0.0.0代表不限。
bind-address=0.0.0.0
# 配置允许最大连接数
max_connections=200
# 实现级联的同步,例如双主双从中,masterA、masterB互为主从,slaveB为masterB的从库,那么masterB中必须设置级联参数,这样,在masterA中的更新才能够最终执行到slaveB上
# 此参数默认关闭状态,如果不手动设置,那么bin-log只会记录直接在本库中执行的SQL语句,
# 而由复制replication机制的SQL线程读取的reply-log而执行的SQL是不会记录到bin-log中的,那么也就是说,无法再继续的执行相关的SQL。那么保证不了最终一致性
# 简单说就是设置主服务器之间复制的数据是否需要往下面的从服务器中去复制,有这个字段表示往下面的从服务器中去复制
# 在多个主从配置的时候,根据业务场景选择是否添加此参数
log-slave-updates
# 配置二进制文件binlog
# 这里配置定义的只是个index索引文件,即会生成的是mysql-bin.index文件,而实际存储数据的是类似于mysql-bin.000001之类的文件,超出范围会继续生成mysql-bin.000002,以此类推
log-bin=mysql-bin
# 配置bin-log文件的模式。
# STATEMENT:基于sql语句级别,记录每一条修改数据的sql语句。mysql默认采用策略
# ROW:基于行的级别。记录每一行记录的变化,也即记录每一行的修改都记录binlog中,不记录sql语句。记录数据行的变化。在全表修改的时候,会产生大量的日志记录
# MIXED:上述两种混合模式。默认使用STATEMENT,特殊情况下切换ROW。比如DML更新INNODB表。
binlog_format = MIXED
# 刷盘配置,默认为0,表示的是刷盘时间由OS来决定,每隔一段时间就会刷新缓存数据到磁盘中
# 可设置值,代表的是没多少个事务提交刷一次binlog
#sync_binlog=0
-------------配置文件Demo(Windows) End---------------