mysql日志主从数据库搭建

Posted 健身小白

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql日志主从数据库搭建相关的知识,希望对你有一定的参考价值。

本人以经安装了mysql 首先将mysql 的data 目录进行物理备份。防止在做主从复制配置时候搞掉。

我这里是之前配置不来的时候搞烂了,启动不起来了,干脆直接保存到时候安装好后替换安装好后的data;

现在开始进行配置:(不要用绿色版)
同时部署两台mysql数据库 mysql-8.0.23-winx64

(一)解压后的分别放入如下目录

分别配置 my.ini 主库

[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
#设置3306端口
port = 3306
# 设置mysql的安装目录
basedir=D:\\\\tool\\\\mysql\\\\master
# 设置mysql数据库的数据的存放目录
datadir=D:\\\\tool\\\\mysql\\\\master\\\\data
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
#主库和从库需要不一致
server-id=1
log-bin=mysql-bin
#同步的数据库
binlog-do-db=test
#不需要同步的数据库
binlog-ignore-db=mysql

从库:

[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
#设置3306端口
port = 3307
# 设置mysql的安装目录
basedir=D:\\\\tool\\\\mysql\\\\slave
# 设置mysql数据库的数据的存放目录
datadir=D:\\\\tool\\\\mysql\\\\slave\\\\data
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
#主库和从库需要不一致
server-id=2
log-bin=mysql-bin
#同步的数据库
binlog-do-db=test
#不需要同步的数据库
binlog-ignore-db=mysql

更多相关设置:比如设置binglog的日志格式:

https://blog.csdn.net/weixin_39958366/article/details/113597939?utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2aggregatepagefirst_rank_ecpm_v1~rank_v31_ecpm-1-113597939.pc_agg_new_rank&utm_term=mysql%E8%AE%BE%E7%BD%AEbinlog%E6%97%A5%E5%BF%97%E6%A0%BC%E5%BC%8F&spm=1000.2123.3001.4430

(二)分别到数据库安装目录的bin下初始化数据库
mysqld --initialize --user=mysql --console

(三)4.安装MySQL服务,以管理员身份运行cmd到解压后的bin目录下,并输入mysqld install MySQL --defaults-file=“F:\\mysql-8.0.15-winx64\\bin\\my.ini”,其中的路径为你正式的ini文件。

(四)运行cmd,输入net start mysql启动MySQL服务,再输入mysql -u root -p,然后输入临时密码,要想使用mysql 必须重新修改密码mysql8以下的使用set password = password(‘新密码’); mysql8以上的使用 ALTER USER “root”@“localhost” IDENTIFIED BY “你的新密码”;

注意的地方是:

同样配置从数据库:.编写my.ini 配置文件并且放到从数据库解压的目录下注:(端口号,server-id,mysql安装目录,数据存放目录和主数据库不一致)

(五)配置:
在主库3306:
查看show master status; 这些是可用于从库配置

从库按顺序执行下面

stop slave;

#这些值在主库执行show master status 可以发现
change master to
master_host='127.0.0.1',
master_port=3306,
master_user='root',
master_password='1234',
master_log_file='mysql-bin.000005',
master_log_pos=1072;

show slave status;

start slave;

show slave status;
#slave_io_starte 变为 Waiting for master to send event   配置成功

测试:在之前配置需要同步的数据库下建表,导入数据

CREATE TABLE `t_sys_dic_type` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `code` varchar(32) NOT NULL DEFAULT '',
  `name` varchar(64) NOT NULL DEFAULT '',
  `status` int(4) NOT NULL DEFAULT '1',
  PRIMARY KEY (`id`),
  KEY `code_index` (`code`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;

导入
INSERT INTO t_sys_dic_type VALUES (‘1’, ‘goodCategory’, ‘物品分类’, ‘1’);
INSERT INTO t_sys_dic_type VALUES (‘2’, ‘express’, ‘快递’, ‘1’);

成功后连接:测试如下
3307从库:

在3306主库插入后

刷新看3307如下:

同时这里可以看到3307的binlog 插入记录

同时在中转站中继日志中可以发现

出现问题是:
mysql主从设置运行成功,但是丛库没有同步数据过来,哪里出了问题?

参数说明:

https://blog.csdn.net/xc_gxf/article/details/8432158

错误检查
1、检查主库bin-log日志是否开启 这里是开启了

2、查看从库 .err文件

发现报错的信息是:

我这里是自己删除了中继日志 relay 他说它找不到因此报错

https://blog.csdn.net/weixin_42456278/article/details/115964459

3错误:
我遇到了个莫名奇妙的错误后来配置了下面好了实现了:之前一直过来不了

#设置日志格式
binlog_format = mixed
#设置binlog清理时间
expire_logs_days = 7
#binlog每个日志文件大小
max_binlog_size = 100m
#binlog缓存大小
binlog_cache_size = 4m
#最大binlog缓存大小
max_binlog_cache_size = 512m

最后附上binlog日志相关操作;便于查看

只查看第一个binlog文件的内容
show binlog events;
查看指定binlog文件的内容
show binlog events in ‘mysql-bin.000002’;
查看当前正在写入的binlog文件
show master status\\G
获取binlog文件列表
show binary logs;
中继日志相关
show variables like ‘%relay%’;
show RELAYLOG events in ‘MS-SRCWYUJDOIVC-relay-bin.000006’;

https://www.cnblogs.com/softidea/p/12624778.html

以上是关于mysql日志主从数据库搭建的主要内容,如果未能解决你的问题,请参考以下文章

MySQL集群主从复制搭建

Mysql主从搭建

mycat系列一基于 Docker 搭建 MySQL 主从复制的详细教程

Linux搭建MySql主从复制

mysql日志主从复制

mysql主从搭建详细步骤