当前位置: 首页 > news >正文

MYSQL数据库突然消失

之前在下载mysql时发现没有my.ini。考虑到后面的项目可能需要,看着教程自己创建了一次,当时就发生了所有数据库消失的问题,近几天这种事件又发生了。我在服务里看到我有mysql和mysql57两个服务,启动一个的时候另一个就无法启动,发现有的数据库在mysql57里。mysql57是网络登录 mysql是本地系统。

1 my.ini没有配置文件的原因 

之前一直以为配置文件是在MYSQL下载的文件地址里,今天在排错时发现是在ProgramData存放数据的MYSQL文件里

2 新建my.ini后数据库消失的问题:

可能是因为MySQL的配置文件(my.ini或my.cnf)中的datadir参数指向了错误的目录。当手动创建my.ini时,如果没有正确设置datadir,MySQL可能会使用默认的数据目录,而这个目录可能没有之前的数据库文件,导致数据库“消失”了。 

3 mysql和mysql57问题

启动一个服务时,另一个无法启动,这可能是因为两个服务都试图监听相同的端口(默认3306),导致端口冲突。此外,每个服务可能使用不同的数据目录和配置文件,因此启动不同的服务会加载不同的数据库实例。

解决方案:

1. 确认服务配置信息

查看服务属性

  • 打开「服务」管理器,右键点击 MySQL57 和 MySQL 服务,选择「属性」。

  • 记录两者的「可执行文件路径」,找到 --defaults-file(配置文件路径)和 --datadir(数据目录路径)。

2. 停止并禁用冗余服务

保留一个服务

  • 以管理员身份运行CMD,停止并删除另一个服务:

sc stop MySQL  # 停止服务
sc delete MySQL  # 删除服务(谨慎操作!)

3. 统一配置文件与数据目录

检查 my.ini 配置

  • 打开保留服务的配置文件。

  • 确认以下关键参数:

[mysqld]
datadir=D:/MySQL/Data  # 确保指向实际数据目录
port=3306              # 避免端口冲突

4. 解决端口冲突

修改端口号

  • 如果需同时运行两个服务,编辑其中一个的 my.ini,修改端口:

[mysqld]
port=3307

最后重启。

相关文章:

  • C语言:文件操作
  • 谷歌 NotebookLM 支持生成中文播客
  • 【项目篇之统一硬盘操作】仿照RabbitMQ模拟实现消息队列
  • 【SQL触发器、事务、锁的概念和应用】
  • 计算机网络:详解TCP协议(四次握手三次挥手)
  • Free Draft Model!Lookahead Decoding加速大语言模型解码新路径
  • 主机电路安全防护系统哪个厂家做
  • 2025年01月03日美蜥(杭州普瑞兼职)一面
  • 递归下降算法
  • ART 下 Dex 加载流程源码分析 和 通用脱壳点
  • Linux 进程基础(二):操作系统
  • Python:Seaborn 美化图表的技术指南
  • Rockermq的部署与使用(0-1)
  • Lesson 16 A polite request
  • Assetto Corsa 神力科莎 [DLC 解锁] [Steam] [Windows]
  • Java--0基础入门篇
  • 修复笔记:SkyReels-V2 项目中的 torch.cuda.amp.autocast 警告和错误
  • SpringMVC——第三章:获取请求数据
  • C++学习:六个月从基础到就业——C++11/14:lambda表达式
  • 《“昊龙一号”:开启中国航天货运新时代》
  • 9金收官!跳水世界杯总决赛朱子锋、程子龙包揽男子10米台冠亚军
  • 文旅局局长回应游客住家里:“作为一个宣恩市民我也会这么做”
  • 巴菲特宣布将于年底退休,“接班人”什么来头?
  • 外交部发言人就澳大利亚联邦大选结果答记者问
  • 五一假期旅游大市党政领导靠前调度,重视解决游客反映的问题
  • 净海护渔,中国海警局直属第一局开展伏季休渔普法宣传活动