win10搭建mysql主从复制的两个测试主从数据库

2023-05-16

mysql主从复制基础–win10电脑设置两个mysql数据库

卸载MySQL数据库

  1. 本人只是想把自己的mysql5.7.4升级为mysql8版本,这里顺带记录一下,以便有需要的人查看
  2. 备份数据库
    本人使用的是sqlyog(数据库连接工具)将自己需要的数据库导出sql,没有备份系统数据库,这个备份操作需要自己百度
  3. 在控制面板中使用程序卸载MySQL
    在这里插入图片描述
    在这里插入图片描述
    之后的界面就不演示了,找到MySQL进行卸载就行了,这个操作应该都会,注意,如果没找到也没关系,本人就是没有找到,进行后续操作就行了
  4. 删除C盘中的两个文件
    1. C:\Program Files目录下的MYSQL目录
    2. C:\Program Files (x86)目录下的MYSQL目录
      这两个目录都不一定会有MYSQL目录,本人就只有在C:\Program Files (x86)目录下有MYSQL目录
  5. 删除注册表的信息
    本人之前删除mysql后续安装失败的例子也有,不过这次我在卸载的时候,只要将注册表的信息删除掉,下次安装就没问题了,虽然不懂理论,但经过几次的安装,也证实了我的这步操作能解决我电脑上的问题,如果觉得不想尝试的小伙伴我也没什么办法,毕竟不懂原理,但是经过了实践认证
    打开注册表的方式:按下win+R弹出运行窗口,之后输入regedit回车
    1. 删除目录HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\EventLog\Application\MySQLD Service
    2. 删除目录HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Services\EventLog\Application\MySQLD Service
      本人的注册表只有ControlSet001目录没有ControlSet002目录,不管他就是
  6. 删除C:\ProgramData\MySQL目录
  7. 停止服务
    1. 办法一:使用命令提示符进入之前安装服务的mysql根目录下的bin目录,然后执行mysqld -remove命令
    2. 办法二:使用win+R打开运行窗口,输入services.msc,在服务表中找到当时安装mysql的服务名,一般名字都为mysql相关的,停止该服务
      在这里插入图片描述
      我这里还学习了一个命令,在停止mysql服务之后,可以用管理员的命令提示符输入sc delete 服务名的命令将某个服务删除,这里我将mysql5.7服务名从服务列表中删除了

安装MySQL数据库(主数据库,端口号3306)

  1. mysql8安装地址https://dev.mysql.com/downloads/mysql/
    在这里插入图片描述
    在这里插入图片描述
  2. 本人的安装包安装在了D盘,为了方便演示,各位读者记得后续输入设置自己的路径
  3. 以前安装MySQL5.7的时候,有个操作是设置环境变量MYSQL_HOME,这里注意,如果要启动两个不同端口的数据库(比如3306和3307端口各启动一个MySQL服务),不要设置环境变量(本人亲测)
  4. 在解压的mysql根目录下面创建my.ini配置文件(这个文件本来是不存在的,由我们手动创建),使用编辑器(本人使用idea)编辑内容如下
    在这里插入图片描述
  5. 配置文件格式如下
    需要注意的点用序号标出来了,其解释如下(按照序号)
    1. server-id:数据库之间设置不一样即可,log-bin=mysql-bin不需要修改
    2. 设置自己需要同步的数据库名
    3. 设置不需要同步的数据库,binlog-ignore-db=mysql这句话不用改,mysql是自带的数据库
    4. 启动端口就是我们数据库占用win服务的端口,默认的mysql都是3306端口,后面配置从数据库的时候需要改成其他端口比如3307
    5. basedirdatadir设置安装后的目录,这里的目录名需要自己新建(新建mysql8目录和data目录),否则会报错
    6. 这里的端口和第4点的端口保持一致
[mysqld]

# 1.设置本数据库的id,主库和从库需要不一致
server-id=1
log-bin=mysql-bin
# 2. 设置需要同步的数据库``
binlog-do-db=work5
# 3. 设置不需要同步的数据库
binlog-ignore-db=mysql

# 4. 启动端口
port=3306
# 5. 配置mysql的安装路径
basedir="D:\MySQL\mysql8"
datadir="D:\MySQL\mysql8\\data"

max_connections=200
max_connect_errors=10
character-set-server=utf8mb4
default-storage-engine=INNODB

[mysql]
default-character-set=utf8mb4

[client]
# 6. 这里配置和上面的启动端口一致
port=3306
default-character-set=utf8mb4
  1. 用管理员进入命令提示符,进入解压后mysql的bin目录,输入mysqld --initialize --user=mysql --console ,这个过程不允许出错,在成功的末尾会看到mysql安装成功的登录密码,类似于我给出的界面,该密码要记住
    在这里插入图片描述
    在这里插入图片描述
  2. 安装服务
    1. 使用管理员的命令提示符进入mysql解压目录的bin目录(也就是上一点的那个地址)
    2. 输入mysqld --install mysql8 --defaults-file="D:\MySQL\mysql-8.0.29-winx64\mysql-8.0.29-winx64\my.ini",这里mysql8是服务名,可以自定义,后面设置的–defaults-file需要输入自己创建的my.ini配置文件的路径。
    3. 此时打开服务列表(win+R,输入services.msc),就可以在列表中找到mysql8服务,之后启动服务
  3. 使用命令提示符,输入mysql -u root -p,之后输入上面获取的初始化密码(用键盘输入,无法复制粘贴
  4. 进入成功之后第一件事就是使用命令alter user root@localhost identified by '自己的密码'将密码改成自己的

安装MySQL数据库(从数据库,端口号3307)

  1. 将刚刚解压的mysql8的目录复制一份,或者使用已有的mysql列表复制一份
    在这里插入图片描述
  2. 将上面的my.ini文件信息进行更改,比如我的从库my.ini内容如下
    只有第1、4、5、6点要做更改,其中第5点的目录mysql-slavemysql-slave\\data都要自己手动创建
# 1.设置本数据库的id,主库和从库需要不一致
server-id=2
log-bin=mysql-bin
# 2. 设置需要同步的数据库``
binlog-do-db=work5
# 3. 设置不需要同步的数据库
binlog-ignore-db=mysql

# 4. 启动端口
port=3307
# 5. 配置mysql的安装路径
basedir="D:\MySQL\mysql-slave"
datadir="D:\MySQL\mysql-slave\\data"

max_connections=200
max_connect_errors=10
character-set-server=utf8mb4
default-storage-engine=INNODB

[mysql]
default-character-set=utf8mb4

[client]
# 6. 这里配置和上面的启动端口一致
port=3307
default-character-set=utf8mb4
  1. 使用管理员的命令提示符进入复制从库的mysql的bin目录,输入命令mysqld --initialize --user=mysql --console安装成功获取到mysql初始化密码
    在这里插入图片描述
  2. 注意,如果从库运行失败,说明有可能是因为设置了mysql环境变量,我之前就是因为这个问题,设置环境变量之后,这次从库的安装信息每次都读取到了环境变量里设置的路径,所以把环境变量的mysql删了就没问题了,删除之后如果还有问题,重启电脑即可解决问题
  3. 此时命令提示符的所在目录依旧在赋值mysql的bin目录,输入mysqld --install mysql8-slave --defaults-file="D:\MySQL\mysql-8.0.29-slave\mysql-8.0.29-winx64\my.ini",这里的mysql8-slave--defaults-file都是上面说过的,一个是自定义服务名,一个是my.ini路径。
  4. 使用win+R,输入services.msc,找到mysql8-slave启动服务
  5. 连接3307端口的mysql
    根据端口启动mysql数据库的命令如下,以前都是默认3306端口所以不需要指定
    mysql -h127.0.0.1 -P3307 -u root -proot
  6. 连接成功之后记得重新设置root密码

启动问题

  1. 重启电脑之后再次在命令行输入mysql -u root -p登录的命令失效,报错原因为不认识mysql,因为我们将mysql的环境变量取消了
  2. 解决
    1. 找到当时安装的mysql根目录的bin目录,在这个目录下使用mysql -u root -p是没有问题的
    2. 主库和从库的启动方法都是一样的
  3. sqlyog连接工具无法连接到从数据库
    在这里插入图片描述
    这是因为mysql新版的身份认证密码插件不一样了
    1. 先使用命令提示符登录上mysql,我这里的主库是可以用sqlyog连接到的,使用命令查询使用的身份认证插件select Host,User,plugin from mysql.user;,得知root@localhost使用的是mysql_native_password
      在这里插入图片描述
    2. 从库无法连接,同理使用命令查看,发现root@localhost使用的是caching_sha2_password
      在这里插入图片描述
    3. 这里将root@localhost用户改成mysql_native_password就行了,使用命令alter user root@localhost identified with mysql_native_password by 'root';
    4. 测试成功
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

win10搭建mysql主从复制的两个测试主从数据库 的相关文章

  • db:schema:load 与 db:migrate 使用 capistrano

    我有一个 Rails 应用程序 我正在将其移动到另一台服务器 我认为我应该使用 db schema load 来创建 mysql 数据库 因为这是推荐的 我的问题是我正在使用 capistrano 进行部署 并且它似乎默认为 rake db
  • 即使没有结果也返回一个值

    我有这种简单的查询 它返回给定 id 的非空整数字段 SELECT field1 FROM table WHERE id 123 LIMIT 1 问题是如果找不到 id 结果集就是空的 我需要查询始终返回一个值 即使没有结果 我有这个东西工
  • PHP MYSQL文件内容转义问题

    我正在尝试使用 php 将 pdf 文件上传到 mysql 数据库中 除了文件内容之外 一切都很好 无论我如何尝试转义特殊字符 查询总是失败 主要是 未知命令 n 我使用过addslashes mysql real escape strin
  • 每月获取记录,但如果该月没有记录,则为零

    如果我有以下 SQL 表 Tests id type receiveDate 1 Blood 2012 01 18 2 Blood 2012 01 20 3 Blood 2012 01 18 4 Blood 2012 03 01 5 Blo
  • 无法在 Mac 上启动 MySQL

    使用 Brew 安装后 我无法运行 MySQL 我使用的是 OS X El Capitan 版本 10 11 3 和 MySQL Server 版本 5 7 11 当我启动服务器时 我收到 启动 MySQL 错误 服务器退出而不更新 PID
  • 用 pandas DataFrame 替换 mysql 数据库表中的行

    Python 版本 2 7 6 熊猫版本 0 17 1 MySQLdb 版本 1 2 5 在我的数据库中 PRODUCT 我有一张桌子 XML FEED 表 XML FEED 很大 数百万条记录 我有一个 pandas DataFrame
  • 如何从批量数据中的mysql列中删除所有非数字字符

    我想从列中删除所有非数字字符 我的数据库中有大量数据 目前我正在使用以下链接中描述的方法 http venerableagents wordpress com 2011 01 29 mysql numeric functions http
  • ORDER BY 字段内的 MySQL 子查询。 (没有内连接)

    有很多与此相关的问题 但都具有使用内部联接的相同答案 这 我认为 在这里是不可能的 如果我错了请告诉我 我现在正在做的是调用两个不同的 mysql 查询来获取结果 它工作完美 db gt query SELECT FROM meta WHE
  • PHP MySQL 使用选项/选择 HTML 表单标签进行多重搜索查询

    我正在尝试使用两个搜索字段设置基本的 MySQL LIKE 搜索 我不想拥有它 所以它有多个可选搜索字段 例如if isset POST city isset POST name 我不知道如何用 HTML 来做到这一点
  • MaxListenersExceededWarning:检测到可能的 EventEmitter 内存泄漏。添加了 11 条消息列表。使用emitter.setMaxListeners()来增加限制

    我知道这可能会标记为重复的解决方案 但堆栈溢出的解决方案对我不起作用 Problem node 5716 MaxListenersExceededWarning Possible EventEmitter memory leak detec
  • MYSQL - 使用逗号分隔字符串作为变量输入的存储过程

    我希望有人能够提供帮助 我已经创建了我的第一个存储过程 没什么花哨的 但是我遇到了问题 我想给它一个字符串输入 例如 1 2 3 4 5 然后它执行一个简单的操作SELECT FROM TABLE WHERE EAN IN VAR 所以存储
  • 内部 while 循环不工作

    这是我项目网页上的代码片段 这里我想显示用户选择的类别 然后想显示属于该类别的主题 在那里 用户可以拥有多个类别 这没有问题 我可以在第一个 while 循环中打印所有这些类别 问题是当我尝试打印主题时 结果只显示一行 但每个类别中有更多主
  • 删除连接中不存在的记录

    想象两个表 A 和 B A B 1 2 2 3 6 5 4 7 9 11 13 23 9 现在我想从 A 中删除 B 中不存在的记录 例如从 A 中删除 1 6 和 4 我最初的想法是您可以 否定 联接的结果 DELETE FROM A W
  • MySql如何将varchar(纬度,经度)转换为十进制字段?

    在 mysql 中 我有一个 varchar 其中包含 Google 地图提供的纬度和经度 我需要能够基于边界框值进行查询 但不需要现在可用的地理特征 我正在尝试使用 varchar 中找到的 Decimal 值填充 2 个新的 Decim
  • 加载“mysql2”Active Record 适配器时出错

    我正在尝试升级我的应用程序 这是我在部署应用程序时遇到的错误 加载 mysql2 Active Record 适配器时出错 缺少它所依赖的宝石 无法激活mysql2 0 4 4 已经激活mysql2 0 3 21 确保所有依赖项都添加到 G
  • 如何从MySQL数据库获取今天/昨天的数据?

    我想从数据库中检索今天的数据 但我不知道该怎么做 我实际上想要获取不是过去 24 小时的数据 我只想获取今天的数据 因此基于实际服务器时间 我还想获取昨天的数据 谁能帮我怎么做 示例代码 SELECT id FROM folk WHERE
  • 使用外键将表拆分为两个表

    我有一张桌子 drupal comments 其中包括以下列 cid primary key uid foreign key to users table optional name varchar optional email varch
  • 查询和扫描多行性能缓慢

    下面的查询一行的执行时间为 6 18 分钟 Exception type 1 的基数值为 3 我不知道如何提高性能 Query select count 1 as rage tap from summary funnel 1066 s jo
  • 将 NULL 变量插入数据库

    我将变量设置为 NULL 我试图将其插入数据库 但由于某种原因 它们一直以 0 的形式提交 我确信我试图插入的列允许 NULL 并且默认值设置为 NULL 这是我的代码 insert NULL query mysql query INSER
  • 使用 order by 和 limit 从多个表中删除

    我试图从使用 ORDER BY DESC 和 LIMIT 有关系的两个表中删除 DELETE FROM my rel table AS t1 LEFT JOIN my photo table AS t2 ON t2 typeid t1 ty

随机推荐

  • Java线程池是如何实现线程复用的?

    前言 没看本文 xff0c 面试挂了 xff0c 别说没提醒你 xff01 没看本文 xff0c 面试挂了 xff0c 别说没提醒你 xff01 没看本文 xff0c 面试挂了 xff0c 别说没提醒你 xff01 相信很多人都接触过线程池
  • 为什么SpringBoot中Service实现类添加@Service会无法注入?

    最近一直在研究Spring Boot 从GitHub上下载了一个my Blog源码 xff0c 一边看 xff0c 一边自己尝试去实现 xff0c 结果掉在坑了 xff0c 研究了近一周才爬出来 xff0c 特地来这博客园记录下来 xff0
  • STM32 Keil5 Bug记录 汇总和解决办法

    STM32 Keil5 Bug记录 汇总和解决办法 文章目录 STM32 Keil5 Bug记录 汇总和解决办法前言一 Warning1 warning no newline at end of file2 warning function
  • 十道泛型面试题,你答得上来吗?

    问题一 xff1a 为什么需要泛型 xff1f 答 xff1a 使用泛型机制编写的代码要比那些杂乱的使用Object变量 xff0c 然后再进行强制类型转换的代码具有更好的安全性和可读性 xff0c 也就是说使用泛型机制编写的代码可以被很多
  • 程序员年初裸辞,至今没找到工作

    4月初裸辞 xff0c 找了近2个多月的工作了 xff0c 至今还没找到 xff0c 感觉心好慌 xff0c 不知道该怎么办了 xff1f 裸辞多久找不到工作 xff0c 心态会崩 xff1f 找不到工作的时候压力很大 xff0c 有人说自
  • 编程语言决定程序员性格,你的性格有没有被带偏?

    人的性格非常容易受到周遭环境影响 xff0c 据说 xff0c 编程环境也会影响一个人的性格哦 xff0c 某种语言用久了 xff0c 性格都会和编程语言的特点挂钩 快来看看你的性格有没有被带偏吧 xff01 1 Python程序员的特征
  • 总结一些IT项目经理的管理方法与经验

    项目经理在大作业中担任的角色 xff0c 既有项目参与者 xff0c 又有共同承担的项目经理的任务 项目经理不一定需要很强的开发能力 xff0c 只要能有效的调动团队 但是良好的开发背景会让你很容易和员工沟通 项目经理需要具备以下几个能力
  • 深度揭秘,中国程序员们的生活现状!

    如果没有程序员 xff0c 整个虚拟世界都会消失不见 全中国7亿多网民 xff0c 再也不能愉快滴发自拍 xff0c 看视频 xff0c 打游戏 xff0c 甚至连打电话都成了一种幻想 绝大部分电子设备都会变成废铁 xff0c 人类的生活将
  • 阿里技术岗招聘专家给求职者的10条建议

    前阵子 xff0c 我和阿里的薪酬福利专家M同学聊了一下午 xff0c M同学做了9年薪酬 xff0c 和我们吐槽了很多薪酬方面的现象 xff0c 也道出了少有人关注的薪酬逻辑和常识 这一次 xff0c 我又找了一位阿里技术岗位的招聘专家T
  • ubuntu18.04依赖于OpenCV3.4.13版本的cv_bridge使用

    前言 ROS原装的cv bridge位于 opt ros melodic include cv bridge 它依赖于OpenCV 3 2 在当前ROS包中为了使用基于新的OpenCV 3 4 10的cv bridge xff0c 网上有博
  • 百度(表格OCR异步接口)API调用流程

    目录 1 调用费用 xff1a 2 调用流程 1 xff09 注册百度账号并进行个人 企业认证 2 xff09 领取免费资源流程 2 xff09 1 xff09 百度智能云 控制台 产品服务 文字识别 2 xff09 2 xff09 领取免
  • 通俗地、有效地学习Linux驱动&应用(只要没更完有空就更)

    目录 食用方法 Warning Linux系统分层的意义 系统移植和烧写 Windows系统下通过OTG烧写 Ubuntu脚本烧写 Windows脚本烧写 通过uboot进行操作 Debian移植 xff08 EBF6ULL系列请看 xff
  • ROS+Opencv的双目相机标定和orbslam双目参数匹配

    本文承接ROS调用USB双目摄像头模组 目录 先完成单目标定双目标定生成可用于ORB SLAM2的yaml文件生成可用于ORB SLAM3的yaml文件参考 按照上面链接配置好后 xff0c 执行 rostopic list 你应该可以找到
  • 双目相机 -- IMU联合标定

    声明 xff1a 一些图片是不该有水印的 xff0c CSDN把图片链接的格式改了 xff0c 暂时还不知道怎么去掉 xff0c 请见谅 xff01 xff01 xff01 目录 声明 xff1a 一些图片是不该有水印的 xff0c CSD
  • window子系统wsl2安装kali及桌面

    一 先升级wsl2 xff08 1 xff09 wsl1没有Linux的内核 xff0c 所以很多Linux版本的工具都无法在wsl1中运行 xff0c 比如 xff1a docker xff0c Linux版本的浏览器等等 所以需要升级为
  • 京东秒杀系统模块的Redis分布式锁深度剖析,没给你讲明白你打我!

    1 0背景 目前开发过程中 xff0c 按照公司规范 xff0c 需要依赖框架中的缓存组件 不得不说 xff0c 做组件的大牛对CRUD操作的封装 xff0c 连接池 缓存路由 缓存安全性的管控都处理的无可挑剔 但是有一个小问题 xff0c
  • 一次搞懂,Docker底层原理分析实战

    当今 xff0c Docker 技术已经形成了更为成熟的生态圈 xff0c 各家公司都在积极做业务容器化改造 xff0c 大家对 Docker 也都已经不再陌生 但在我刚接触 Docker 时 xff0c 市面上的资料还非常少 xff0c
  • RocketMq安装出现的问题

    RocketMq4 9 3版本下载安装问题 xff08 Win10 xff09 1 官网https rocketmq apache org docs quick start 找到下图中所示的链接 下载链接 解压到自己想要的目录下 xff0c
  • 阿里云服务器搭建fastdfs

    fastdfs安装介绍 环境准备 本人的阿里云服务器CentOS Linux release 7 9 2009 Core 版本 xff08 通过命令cat etc redhat release查看自己的Linux版本信息 xff09 过程中
  • win10搭建mysql主从复制的两个测试主从数据库

    mysql主从复制基础 win10电脑设置两个mysql数据库 卸载MySQL数据库 本人只是想把自己的mysql5 7 4升级为mysql8版本 xff0c 这里顺带记录一下 xff0c 以便有需要的人查看备份数据库 本人使用的是sqly