mysql 5.7 主从同步配置(windows)

今天在做mysql的主从同步的时候碰到了一些问题,在这里整理一下。

首先趁着五一假期,主库停机,复制data至从库(时间比较长)。

1、配置主库,主要是my.ini增加如下选项:


# Binary Logging.
# log-bin

log-bin="D:/mysql/mysql/log/mysql-bin/"
# 使binlog在每N次binlog写入后与硬盘 同步
sync-binlog=1
# 1天时间自动清理二进制日志
expire_logs_days=1
# 需要同步的数据库 
binlog-do-db=database1
binlog-do-db=database2
binlog-do-db=database3
# 不需要同步的数据库
binlog-ignore-db=mysql   
binlog-ignore-db=information_schema 
binlog-ignore-db=performance_schema
binlog-ignore-db=database5
binlog-ignore-db=database6


# Error Logging.
log-error="data.err"

# Server Id,每个库都必须独立的分配id.
server-id=2
port=6666

从库配置:

replicate_wild_do_table=database1.%
replicate_wild_do_table=database2.%
replicate_wild_do_table=database3.%

replicate_wild_ignore_table=mysql.%
replicate_wild_ignore_table=information_schema.%
replicate_wild_ignore_table=performance_schema.%
replicate_wild_ignore_table=database5.%
replicate_wild_ignore_table=database6.%
# 二进制日志自动删除的天数
expire_logs_days=1
# Server Id.
server-id=5
port=6667

配置文件的选项如上,其余则须通过命令行的形式来进行…,(抱怨:oracle就是让mysql越来越难用)
接下来时命令行的内容:

主库:

#进入到mysql的bin目录下,执行

#重启主数据库,然后在主数据库中建立一个备份账户
mysql -h localhost -u root -p
输入密码
进入mysql 
mysql>show databases;
mysql>grant replication slave on *.* to 'slave_username'@'192.168.1.12' identified by 'slave_password' ;
mysql>flush privileges;
#显示主服务器的状态信息,并且找到File 和 Position 的值记录下来;
mysql>show master status \G;
#记下File 和 Position,从库配置要用    

从库:

#进入到mysql的bin目录下,执行
#重启从数据库,设置登录主数据库的账号和密码等信息,然后启动slave
mysql>change master to master_host='192.168.1.2',master_user='slave_username',master_password='slave_password', master_log_file='.000001',master_log_pos=0; 
mysql>start slave;
#此处加\G的意思是格式化输出,否则输出乱七八糟,看不清楚
mysql>show slave status \G;
#如果出现: Slave_IO_Running: Yes Slave_SQL_Running: Yes以上两项都为Yes,那说明没问题了

问题汇总:

1.问题:unknown variable ‘master-host=192.168.8.1’
解决办法:Mysql版本从5.1.7以后开始就不支持“master-host”类似的参数,需要在mysql控制台中使用change master to 命令添加相关信息,而且中横杠’-‘改成了下横杠’_’…

2.问题:mysqlbinlog: [ERROR] unknown option ‘–no-beep’
解决办法:命令后添加 –no-defualts选项

3.问题:Fatal error: The slave I/O thread stops because master and slave have equal MySQL server UUIDs; these UUIDs must be different for replication to work.
解决办法:因为copy的时候讲auto.cnf一起copy过来了,就产生了主库和从库UUID重复的问题,删掉auto.cnf,重新启动

4.问题:Got fatal error 1236 from master when reading data from binary log: ‘binlog truncated in the middle of event; consider out of disk space on master; the first event ” at 120, the last event read from ‘D:\mysql\mysql\log\mysql-bin.000001’ at 123, the last byte read from ‘xxx.000001’ at 139.’, Error_code: 1236
解决办法:在从库重新指向到主库下一个可用的binlog file 并且从binlog file初始化的位置开始,执行mysql命令

#此命令一定不要加文件路径,直接写文件名,否则继续报错
mysql> stop slave;
mysql> change master to master_log_file='.000001',master_log_pos=0;
mysql> start slave;
mysql> show slave status;

5.问题:cann’t connect to mysql server 10060,远程无法访问
解决办法:给用户授权远程登录权限
mysql> grant all privileges on . to ‘username’@’%’ identified by ‘password’ with grant option;

6.问题: The innodb_system data file ‘ibdata1’ must be writable
解决办法:赋予ibdata1写入权限

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux MySQL 5.7主从配置是一种常用的数据库架构,用于提高数据库的可用性和性能。在主从配置中,一个MySQL服务器充当主服务器,负责处理写操作和更新数据,而其他MySQL服务器充当从服务器,负责复制主服务器上的数据并处理读操作。 以下是Linux MySQL 5.7主从配置的步骤: 1. 安装MySQL:在Linux服务器上安装MySQL 5.7版本,并确保主从服务器上都安装了相同版本的MySQL。 2. 配置主服务器:在主服务器上进行以下配置: - 打开MySQL配置文件(一般位于/etc/mysql/my.cnf)。 - 设置server-id参数,为主服务器分配一个唯一的ID号。 - 启用二进制日志(binlog),以记录所有的写操作。 - 重启MySQL服务使配置生效。 3. 创建复制用户:在主服务器上创建一个用于复制的用户,并为其授予复制权限。 4. 备份主服务器数据:在主服务器上执行数据库备份操作,以便在从服务器上进行初始化。 5. 配置从服务器:在从服务器上进行以下配置: - 打开MySQL配置文件。 - 设置server-id参数,为从服务器分配一个唯一的ID号。 - 配置主服务器的连接信息,包括主服务器的IP地址、复制用户和密码。 - 启动从服务器,并连接到主服务器进行数据复制。 6. 同步数据:从服务器连接到主服务器后,会自动开始复制主服务器上的数据。可以使用SHOW SLAVE STATUS命令来查看复制状态。 7. 测试主从配置:在主服务器上进行写操作,并在从服务器上进行读操作,以确保主从复制正常工作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值