Mysql启动报错:本地计算机上的mysql服务启动后停止,某些服务在未由其他服务或程序使用时将自动停止

Mysql启动报错:本地计算机上的mysql服务启动后停止,某些服务在未由其他服务或程序使用时将自动停止

文章目录

  • `Mysql`启动报错:本地计算机上的`mysql`服务启动后停止,某些服务在未由其他服务或程序使用时将自动停止
    • [1. 备份`mysql`的`data`文件夹](#1. 备份mysqldata文件夹)
    • [2. 重新构建 `Windows`的`Mysql` 服务](#2. 重新构建 WindowsMysql 服务)
      • [2.1 管理员权限进入`CMD`](#2.1 管理员权限进入CMD)
      • [2.2 删除 `Mysql` 服务](#2.2 删除 Mysql 服务)
    • [3. 不指定配置文件导致的后果](#3. 不指定配置文件导致的后果)
      • [3.1 新创建了`Mysql`服务](#3.1 新创建了Mysql服务)
      • [3.2 新建用户](#3.2 新建用户)
      • [3.3 无法生效配置文件](#3.3 无法生效配置文件)
    • [4. 总结](#4. 总结)
    • [5. 参考博客](#5. 参考博客)

背景:在修改了 my.ini 配置之后,重启 WindowsMysql 服务后,遇到的mysql启动报错。

1. 备份mysqldata文件夹

Tips: 如果你是选择默认安装,一般 Mysqldata 文件夹路径在 C:\ProgramData\MySQL\MySQL Server 8.0\Data

  • Mysql 默认安装时,会有两个关键路径 (C:\ProgramData\MySQL\MySQL Server 8.0C:\Program Files\MySQL\MySQL Server 8.0)
  • 这两个路径 前者是 数据库数据,配置文件,数据库日志Mysql 核心数据存储地,后者是 Mysql 软件本身,即提供服务的程序。
  • 如果你不想要丢失核心数据,请一定要备份好 data 文件夹

如果你没有做好 mysql data 文件夹备份操作,请不要执行以下操作

2. 重新构建 WindowsMysql 服务

2.1 管理员权限进入CMD

Step-1:Win + s ,输入cmd

Step-2:右键 命令提示符,选择以管理员身份运行

Step-3: 检验是否是以 C:\Windows\system32> 开头,如果是,则说明以管理员权限身份运行打开成功

2.2 删除 Mysql 服务

Step-1: 删除 MySQL 服务

shell 复制代码
$ mysqld --remove mysql

Step-2: 重新安装 Mysql服务,并指定配置文件路径

shell 复制代码
$ mysqld --install MySQL80 --defaults-file="C:\ProgramData\MySQL\MySQL Server 8.0\my.ini"

Step-3:如果出现重复提示可以在 Windows中注销该服务

重复提示

删除服务

shell 复制代码
$ sc delete mysql

Step-4: 再次执行重新安装 Mysql服务,并指定配置文件路径

得到结果

Step-5:win + s 输入 服务

Step-6: 找到刚刚注册的 MySQL81服务

现在你就可以随意启动这个服务了,他继承了之前数据库的一切配置,此时,打开 navicat 进行连接,一切数据还在。

检查配置文件路径

shell 复制代码
$ SELECT variable_path,COUNT(*) FROM performance_schema.variables_info WHERE variable_path<>''  GROUP BY variable_path;

好!是想要的配置文件路径,没跑了!

3. 不指定配置文件导致的后果

Tips: 以下篇幅都是在记录坑点,或许你有一天也会遇到,希望本博客能够给你带来思路的启迪;

3.1 新创建了Mysql服务

​ 如果你执行了如下操作:

Tips:初看没有什么问题,Windows 会告诉你正确的结果,但是 Mysql 会给你在路径 C:\Program Files\MySQL\MySQL Server 8.0 下,建立一个 data 文件夹

​ 这相当于新建了一个 MySQL 的数据存放地址,也就意味着,你之前工作过的数据库和表 找不到了,这是一个全新的数据库,不得不说,这是一个沮丧的事情,但是更加糟糕的还不在于此。

3.2 新建用户

​ 这时,你进入MySQL数据库输入以下指令

shell 复制代码
$ mysql -uroot -p

​ 系统提示你输入密码,你会发现,你之前保存的密码已经不见了,这个时候相当于一个新的用户,你可以直接不输入密码按Enter即可进入;

​ 但是使用第三方软件时,必须要求数据库有密码,会出现 Access denied for user 'root'@'localhost' (using password:YES) 报错,于是我们必须设置 MySQL 密码。

shell 复制代码
$ set passeord for root@localhost=password('root'); (MySQL 5.7 可以用)

​ 如果你是 8.0 版本及以上用户,会提示报错 ERROR 1064 (42000) You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'password('root')' at line 1,可以使用以下指令解决问题。

shell 复制代码
$ ALTER user 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';

​ 刷新权限(注意结尾有分号),然后回车。

shell 复制代码
$ flush privileges; 

​ 测试是否成功:输入之前第一步输入过的 mysql -uroot -p,并回车,这个时候一样会要求我们输入密码,接下来我们输入 刚刚设置好的密码,并回车,出现下图结果即为成功。

Tips: 这个时候你很疑惑,为什么这个流程像是 Mysql卸载了重装??但是这个好像比重装更加糟糕,接下来的篇章你会看到问题所在。

3.3 无法生效配置文件

当你想要检查一下刚刚新建的用户使用的数据库文件路径的时候,最糟糕的事情来了,你无法让更改的 my.ini 配置文件生效。

使用指令

shell 复制代码
$ show variables like '%datadir%'

你会发现默认数据存储路径如下,但是我记得我以前的数据库存储路径在 C:\ProgramData\MySQL\MySQL Server 8.0,同时我的配置文件也在 C:\ProgramData\MySQL\MySQL Server 8.0 路径下。

这个时候,冲突发生了!

当你修改配置文件 my.ini 中的 datadir 想要重新自定义数据库存储路径时,保存后,重复上述指令,你会发现,你的修改没有变化!

这时应该意识到 是不是加载错误了 my.ini 配置文件?

使用指令 MySQL8.0 专用指令,如果是其他版本的 MySQL 建议百度搜索,如何检查MySQL加载的配置文件路径。

shell 复制代码
$ mysql> SELECT variable_path,COUNT(*) FROM performance_schema.variables_info WHERE variable_path<>''  GROUP BY variable_path;

你会得到

shell 复制代码
$ Empty set (0.00 sec)

这麻烦就大了,说明**你没有配置。。**这意味着你不知道他的默认值,无法修改配置文件,导致你几乎丧失权限。如果你是一个普通的开发者,只是想要完成任务,这可以忍受,如果你是一个专业的开发者,那么几乎完全无法忍受不能操作配置文件,这给程序带来了极大的不确定性。

如果是正常的,应该会得到如下正确示例

Tips: 无法修改配置文件意味着什么?

  • 意味着 MySQL的某些限制你无法修改,比如最短响应时间
  • 意味着你无法根据个人程序对MySQL 进行个人化改造

4. 总结

复制代码
对于本次事件,我个人的感觉是 `Windows` 的某些服务损坏了,并不是 `Mysql` 的问题,但是`windows` 几乎能够让你找不出错误来,只能说看了很多解决方案,被坑了,不能简单的进行 `mysqld --initialize` 这个会坑死人的。

收获:

  • 至少收获了在 WindowsMysql 的配置路径区别
  • Windows 删除服务,注册服务
  • Mysql 数据库 data 文件夹重定向
  • Mysqlwindows 的配置检查

5. 参考博客

  1. 【解决】mysql本地计算机上的MySQL服务启动后停止。某些服务在未由其他服务或程序使用时将自动停止_本地计算机 上的 mysql 服务启动后停止。某些服务在未由其他服务或程序使用时将自-CSDN博客

  2. 完美解决MySQL ERROR:Access denied for user root@localhost (using password:YES)_access denied for user 'root'@'localhost' (using p-CSDN博客

  3. 【完美解决】mysql启动不了:本地计算机上的MySQL服务启动后停止_本地计算机上的mysql服务启动后停止 某些-CSDN博客

  4. windows 本地安装的mysql 查找配置文件,my.cnf,my.ini位置的方法-CSDN博客

  5. mysql 数据文件夹 data 的设置与移动【windows | 实测】 - 知乎 (zhihu.com)

  6. 我无法在%ProgramData中找到我的MySQL文件夹%ProgramData% - VoidCC

  7. (7 封私信 / 80 条消息) 有没有大佬知道ProgramData文件里没有MySQL文件是怎么回事啊? - 知乎 (zhihu.com)

  8. 安装MySQL遇到的一下问题和细节_为什么program files和programdata中都有mysql-CSDN博客

  9. 关于修改MySQL数据存储路径,超详细!!!_更改mysql数据库存储位置-CSDN博客

  10. MySQL如何找到使用的是哪个配置文件?-腾讯云开发者社区-腾讯云 (tencent.com)

  11. 新特性解读 | MySQL 8.0 轻松改配置,云上友好 - MySQL分布式中间件DBLE - SegmentFault 思否

  12. Windows环境下手动启动、停止MySQL服务. 命令行启动、停止MySQL服务. 查找MySQL安装目录._启动与停止mysql的命令是是-CSDN博客)

  13. MySQL 服务正在启动 . MySQL 服务无法启动 服务没有报告任何错误 解决方案_mysql 服务正在启动 . mysql 服务无法启动。 服务没有报告任何错误。-CSDN博客

  14. 修改MySql8.0的数据库默认存储位置_mysql8.0 数据库指定数据库存放位置怎么设置-CSDN博客

  15. net start mysql MySQL 服务正在启动 . MySQL 服务无法启动。 服务没有报告任何错误。_net start mysql无法启动-CSDN博客

  16. 关于修改MySQL数据存储路径,超详细!!!_mysql_Wang_JR1229-GitCode 开源社区 (csdn.net)

  17. mysql 查找配置文件位置方法_查看mysql配置文件位置-CSDN博客

  18. mysql启动报错:本地计算机上的mysql服务启动后停止,某些服务在未由其他服务或程序使用时将自动停止_本地计算机上的mysql服务启动后停止某些服务在未有其他服务或程序使用时将自动停止-CSDN博客

  19. 在 Windows 系统中删除「服务」的 4 种方法_windows卸载任务管理器的服务-CSDN博客

  20. windows server mysql错误1053 服务没有及时响应启动或控制请求_mob64ca12d5604e的技术博客_51CTO博客

  21. 如何解决本地计算机上的mysql服务启动停止后,某些服务在未由其他服务或程序使用时将自动停止(如果你在网上找了方法都不行,可以试试这个)-CSDN博客

相关推荐
JIngJaneIL8 分钟前
基于springboot + vue房屋租赁管理系统(源码+数据库+文档)
java·开发语言·前端·数据库·vue.js·spring boot·后端
陈平安安33 分钟前
设计一个秒杀功能
java·数据库·sql
isNotNullX41 分钟前
数据处理的流程是什么?如何进行数据预处理?
数据库·数据资产管理·数据处理·企业数字化
TAEHENGV44 分钟前
基本设置模块 Cordova 与 OpenHarmony 混合开发实战
android·java·数据库
Leo1871 小时前
MySQL 回表(Back to Table)详解
数据库·mysql
遇见火星1 小时前
MySQL 8.0复制架构主从自动切换脚本
mysql·adb·架构·mysql8.0·mysql主从
不知江月待何人..1 小时前
MySQL服务无法启动问题
数据库·mysql
廋到被风吹走1 小时前
【数据库】【Oracle】SQL基础
数据库·sql·oracle
曹牧1 小时前
Oracle统计每日发生次数
数据库·oracle
范纹杉想快点毕业1 小时前
返璞归真还是拥抱现代?——嵌入式研发中的“裸机开发”与RTOS全景解析
c语言·数据库·mongodb·设计模式·nosql