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日志主从数据库搭建的主要内容,如果未能解决你的问题,请参考以下文章