mysql读写分离实战二-windows 上mysql主从数据库搭建及问题总结

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 根据前篇web项目的搭建后,需要搭建主从数据库,这里在windows服务器上搭建了主从结构的mysql,这里在记录下在本机模拟搭建过程 在windows上安装和linux还是有些不同,不注意就会耽误不少时间 一 下载安装包和安装https://dev.mysql.com/downloads/file/?id=469273 下载的安装包是Archive 需要手工安装且建立服务和初始化data目录,具体可以在网上搜索有很多具体安装方法。

根据前篇web项目的搭建后,需要搭建主从数据库,这里在windows服务器上搭建了主从结构的mysql,这里在记录下在本机模拟搭建过程
在windows上安装和linux还是有些不同,不注意就会耽误不少时间
一 下载安装包和安装
https://dev.mysql.com/downloads/file/?id=469273 下载的安装包是Archive
需要手工安装且建立服务和初始化data目录,具体可以在网上搜索有很多具体安装方法。
二 建立从节点
1把主服务器的安装目录C:\Program Files\MySQL\MySQL Server 5.7所有文件都copy到另一个目录D:\anzhuang\MySQL\mysqlSlave\MySQL Server 5.7。
2修改复制过来的my.ini文件参数
包括端口和路径
port = 3307
basedir = "D:\anzhuang\MySQL\mysqlSlave\MySQL Server 5.7"
datadir = "D:\anzhuang\MySQL\mysqlSlave\MySQL Server 5.7\data"
3建立mysql从服务器服务
mysqld install MySQLM --defaults-file="D:\anzhuang\MySQL\mysqlSlave\MySQL Server 5.7\my.ini"
4修改对应注册表里服务启动项的内容
注册表HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\MySQL57\ImagePath里使用的路径改成
"D:\anzhuang\MySQL\mysqlSlave\MySQL Server 5.7\bin\mysqld" --defaults-file=D:\anzhuang\MySQL\mysqlSlave\MySQL Server 5.7\my.ini MySQLS
mysqld_multi.pl --defaults-extra-file=D:\anzhuang\MySQL\mysqlSlave\MySQL Server 5.7\my.ini start 3307
以便启动mysql时可以找到对应my.ini文件启动
三 主节点配置
1修改主节点和从节点上my.ini
[mysqld]
server-id = 1  
binlog-do-db=test #要同步的数据库
#binlog-ignore-db=mysql   #不同步的数据库,如果指定了binlog-do-db这里应该可以不用指定的
log-bin=mysql-bin #要生成的二进制日记文件名称

修改从配置文件:
[mysqld]
server-id = 2
log-bin    = mysql-bin
replicate-do-db=test

2上创建用户并授权
create user 'repla'@'127.0.0.1' identified by 'test';
GRANT REPLICATION SLAVE ON *.* TO 'repla'@'127.0.0.1';
3创建test数据库

4 物理备份test目录到从库
把datadir指定的目录的data目录copy到从目录
5 show master status
查看file和position字段对应的参数;
+------------------+----------+--------------+------------------+--------------
----+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid
Set |
+------------------+----------+--------------+------------------+--------------
----+
| mysql-bin.000006 |     1847 | test         |                  |
    |
+------------------+----------+--------------+------------------+--------------


四从节点配置
1启动从节点mysql服务
mysql -uroot -P3307 -p123456 如果端口不同,必须制定端口,才能在一台机器上同时启动多实例

2 接收主节点传送日志
change master to master_host='127.0.0.1',master_port=3306,master_user='repla',master_password='test',master_log_file='mysql-bin.000006',master_log_pos=1847;

3启动从数据库复制功能
start slave

最后在主库插入数据后,从库就能看到主库的数据了。

问题总结
1这里的my.ini文件在注册表里有指定,无论是否使用命令指示使用自己命令的ini,系统都会根据注册表里的my.ini文件位置去读取并启动db。
比如用命令C:\Program Files\MySQL\MySQL Server 5.7\bin>mysql --defaults-file="D:\anzhuang\MySQL\my.ini" -uroot -p
想使用自己定义的my.ini.但注册表HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\MySQL57\ImagePath里使用的路径不是
这个路径时,还会按照注册表的路径读取文件。
如果在windows上安装,要正确识别my.ini位置,具体可根据服务选择或注册表信息判断my.ini位置

2 备份时可采用物理备份和逻辑备份,如果是物理备份注意把主库的data目录下的全部文件复制到slave
这个data目录一定是datadir参数中指定的目录,这点可能会采用软件安装目录下的data目录而不是数据目录
3 采用物理备份时很可能把auto.cnf文件也复制到slave,造成主备之间的UUID不一致,这里的解决办法是在slave
重新命名auto.cnf,然后重启备库,重新生成新的UUID
可以参考网址http://www.linuxidc.com/Linux/2015-02/113564.htm
4 在slave上需要验证主从是否开始传送日志方法
mysql> show slave status\G
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 127.0.0.1
                  Master_User: repla
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000011
          Read_Master_Log_Pos: 1684
               Relay_Log_File: SDSC-WIN7-ZHANGLU-relay-bin.000002
                Relay_Log_Pos: 1595
        Relay_Master_Log_File: mysql-bin.000011
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
              Replicate_Do_DB: test
    ......
 Slave_IO_Running: Yes Slave_SQL_Running: Yes都是Yes 就对了。
 可能出现问题是要多次stop slave后多次执行change master to命令。

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
14天前
|
SQL 关系型数据库 MySQL
12 PHP配置数据库MySQL
路老师分享了PHP操作MySQL数据库的方法,包括安装并连接MySQL服务器、选择数据库、执行SQL语句(如插入、更新、删除和查询),以及将结果集返回到数组。通过具体示例代码,详细介绍了每一步的操作流程,帮助读者快速入门PHP与MySQL的交互。
29 1
|
16天前
|
SQL 关系型数据库 MySQL
go语言数据库中mysql驱动安装
【11月更文挑战第2天】
30 4
|
23天前
|
监控 关系型数据库 MySQL
数据库优化:MySQL索引策略与查询性能调优实战
【10月更文挑战第27天】本文深入探讨了MySQL的索引策略和查询性能调优技巧。通过介绍B-Tree索引、哈希索引和全文索引等不同类型,以及如何创建和维护索引,结合实战案例分析查询执行计划,帮助读者掌握提升查询性能的方法。定期优化索引和调整查询语句是提高数据库性能的关键。
119 1
|
11天前
|
运维 关系型数据库 MySQL
安装MySQL8数据库
本文介绍了MySQL的不同版本及其特点,并详细描述了如何通过Yum源安装MySQL 8.4社区版,包括配置Yum源、安装MySQL、启动服务、设置开机自启动、修改root用户密码以及设置远程登录等步骤。最后还提供了测试连接的方法。适用于初学者和运维人员。
107 0
|
24天前
|
监控 关系型数据库 MySQL
数据库优化:MySQL索引策略与查询性能调优实战
【10月更文挑战第26天】数据库作为现代应用系统的核心组件,其性能优化至关重要。本文主要探讨MySQL的索引策略与查询性能调优。通过合理创建索引(如B-Tree、复合索引)和优化查询语句(如使用EXPLAIN、优化分页查询),可以显著提升数据库的响应速度和稳定性。实践中还需定期审查慢查询日志,持续优化性能。
53 0
|
关系型数据库 MySQL 数据库
Windows安装MySQL
Windows安装MySQL
Windows安装MySQL
|
前端开发 关系型数据库 MySQL
手把手教你在Windows 11安装MySQL 8.0
1. 官网下载安装包 下载地址: dev.mysql.com/downloads/m… 通过下载页面可以选择安装包或者是压缩包。 这里选择安装文件(Installer MSI)
850 0
|
关系型数据库 MySQL Windows
|
关系型数据库 MySQL Windows
Windows 10下安装Mysql 5.7
mysql软件下载 mysql官方下载地址 01 02 03 04 mysql软件安装 05 06 07 08 09 10 ...
1022 0
|
存储 关系型数据库 MySQL
Windows 安装 MySQL 8.0.11
原文:Windows 安装 MySQL 8.0.11 下载并解压 从官方网站下载最新安装包 解压到目标安装目录 新建配置文件 在安装目录新建my.ini文件 添加如下内容(需修改为自己的配置) #------------------------------------------------ # my.
888 0

热门文章

最新文章

下一篇
无影云桌面