Mysql主从配置,亲手搭建,保证可用!

配置前准备

1、准备2个mysql环境
2、两个mysql网络互通

第一步

配置mysql配置文件【my.cnf】|【my.ini】
【master】配置如下

[mysqld]
server-id = 1        # 节点ID,确保唯一
log config
log-bin = mysql-bin     #开启mysql的binlog日志功能,binlog日志位置
sync_binlog = 1         #控制数据库的binlog刷到磁盘上去 , 0 不控制,性能最好,1每次事物提交都会刷到日志文件中,性能最差,最安全
binlog_format = mixed   #binlog日志格式,mysql默认采用statement,建议使用mixed
expire_logs_days = 7                           #binlog过期清理时间
max_binlog_size = 100m                    #binlog每个日志文件大小
binlog_cache_size = 4m                        #binlog缓存大小

binlog-do-db=test1 #需要同步的数据库
binlog-do-db=test2 #需要同步的数据库

max_binlog_cache_size= 512m              #最大binlog缓存大
binlog-ignore-db=mysql #不生成日志文件的数据库,多个忽略数据库可以用逗号拼接,或者 复制这句话,写多行

auto-increment-offset = 1     # 自增值的偏移量
auto-increment-increment = 1  # 自增值的自增量
slave-skip-errors = all #跳过从库错误

【slave】

[mysqld]
server-id=2
log-bin=mysql-bin #如果从数据库,不需要再往其他数据库同步,可以注释掉
relay-log=slave-relay-bin #必须开启,从主数据库同步的binlog会写入到该目录下
relay-log-index=slave-relay-bin
#如果主从数据库名称相同
replication-do-db=数据库名
#如果主从数据库名称不同
replication-rewrite-db= 主数据库名 -> 从数据库名

第二步

重启服务

service mysql restart

第三步

在主库创建一个用于同步的用户(当然也可以不创建,直接用已有的,不过为了安全建议还是创建一个)

CREATE USER centos1 IDENTIFIED BY 'maluole';
grant replication SLAVE on *.* to 'mycentos1'@'192.168.2.88' identified by 'maluole';

mysql8.0后。授权可能会报错。

#如果使用navicate创建用户,需要修改加密方式
alter user centos1 identified with mysql_native_password by 'maluole'
#修改host改为所有ip
update user set host='%' where user='centos1'
#授权不需要加密码
grant replication SLAVE on *.* to 'centos1'@'%'

第四步

在主服务器上查看master信息,需要记住【file】和【position】

show master status;

第五步

登陆从服务器mysql,增加从节点需要同步的master信息,其中【master_log_file】和【master_log_pos】是从上一步获取到的两个字段信息。执行以下语句

change master to master_host='192.168.2.151',master_user='mycentos1',master_password='maluole',master_log_file='mysql_bin.000015',master_log_pos=413;

参数解释: MASTER_HOST : 设置要连接的主服务器的ip地址 MASTER_USER : 设置要连接的主服务器的用户名
MASTER_PASSWORD : 设置要连接的主服务器的密码 MASTER_LOG_FILE :
设置要连接的主服务器的bin日志的日志名称,即第3步得到的信息 MASTER_LOG_POS :
设置要连接的主服务器的bin日志的记录位置,即第3步得到的信息,(这里注意,最后一项不需要加引号。否则配置失败)

————————————————

注: master_host是主节点的ip地址,master_user
和master_password是前面步骤主服务器创建的用于连接主服务器的帐号和密码,master_log_file和master_log_pos需要从master节点,进入Mysql数据库后进行查询

第六步

在从服务器上启动主从

start slave;#启动主从
stop slave;#暂停主从

注:如果启动从节点失败,需要执行重置。

stop slave;
reset slave;

第七步

该模式下,不会导致数据丢失和截断,因为该值只允许同类的小数据类型转换为大数据类型,其他模式的转换都会发生1677错误。生产环境建议设置该值

set global slave_type_conversions ='ALL_NON_LOSSY';

第八步

查看主从同步状态,没有报错启动成功

show slave status \G;
OR
show slave status;

如下图,均为Yes表示成功。

Mysql主从配置,亲手搭建,保证可用!_第1张图片

你可能感兴趣的:(mysql)