标签:star ati pre 新建库 ide 从服务器 主键 ade class
准备三台服务器,一主一从一备
在主服务器(master)下找到mysql配置文件。
Window下为my.ini(一般在C:\ProgramData\MySQL\MySQL Server 5.7下); Linux下为/etc/my.cnf
# 服务的唯一编号
server-id=1
# 开启mysql binlog功能 slave会基于此log-bin来做replication
log-bin=master-bin
log-bin-index=master-bin.index
# binlog记录内容的方式,记录被操作的每一行
binlog_format=ROW
# 减少记录日志的内容,只记录受影响的列
binlog_row_image=minimal
# 指定需要复制的数据库名
# 如果没有指定会监听复制所有的库,新建库操作也会复制,反之只监听复制指定的库
binlog-do-db=test
#不用于master-slave的具体数据库
binlog_ignore_db=mysql
binlog_ignore_db=information_schema
# 只读赋权
GRANT SELECT ON *.* TO 'lucky'@'10.104.114.116' IDENTIFIED BY 'luckytea';
# 从权限 赋权
GRANT REPLICATION SLAVE ON *.* TO 'luckytea'@'10.104.132.33' IDENTIFIED BY 'luckytea';
# 刷新权限
FLUSH PRIVILEGES;
系统 | 命令 |
---|---|
Linux | service mysqld restart; |
Window | net stop mysql; net start mysql; |
6、 查看主服务器状态
注意!更改配置或者数据库重启,主库日志的Position会改变,从库需要重新配置
# 确保主从库数据库结构一致
# 查看server-id 是否和配置一致,从服务器id需要大于主服务器id
show variables like '%server_id%'
# 将下列结果中 File和 Position 记录后交给从服务器搭建人员
show master status\G;
log-bin=relay-bin
#先全局查找注释原来的server-id
server-id=2
#保存配置进行重启查看server-id
show variables like '%server_id%';
CHANGE MASTER TO
MASTER_HOST='master所在服务器的IP',
MASTER_USER='master授权的账号',
MASTER_PASSWORD='master授权的密码',
MASTER_LOG_FILE='master的日志文件名',
MASTER_LOG_POS=master的日志所在位置;
# 关闭防火墙或者打开端口权限
# 查看server-id 是否和配置一致,从服务器id需要大于主服务器id
show variables like '%server_id%'
start slave;
show slave status\G;
# 请确认 Master_Log_File = 主服务器的File, Read_Master_Log_Pos = 主服务器的Position
# 请确认 Slave_IO_Running = Slave_SQL_Running = yes
方法一:说明从库执行了错误操作,请进行回滚
stop slave ;
set GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
start slave ;
show slave status\G;
方法二:重新进行一次同步操作
stop slave ;
CHANGE MASTER TO
MASTER_HOST='master所在服务器的IP',
MASTER_USER='master授权的账号',
MASTER_PASSWORD='master授权的密码',
MASTER_LOG_FILE='master的日志文件名',
MASTER_LOG_POS=master的日志所在位置;
start slave;
show slave status\G;
修改主库数据库,如从库变化,则配置成功
# 自增id起始值
auto_increment_offset=1
# 每次自增数字
auto_increment_increment=2
主服务器2 在/etc/my.cnf下[mysqld]加入如下语句,使得新增id全为偶数
# 自增id起始值
auto_increment_offset=2
# 每次自增数字
auto_increment_increment=2
注意,本教程未考虑灾备和脑裂的情况,暂行方案是连接客户端时捕获异常,切换ip连接。
推荐使用keepaliver,但是脚本需要自己编写,较复杂
标签:star ati pre 新建库 ide 从服务器 主键 ade class
原文地址:https://www.cnblogs.com/hyry/p/11927586.html