立山 发表于 2024-6-21 01:55:46

Mysql启动报错:本地计算机上的mysql服务启动后停止,某些服务在未由其他服

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



   背景:在修改了 my.ini 配置之后,重启 Windows 的 Mysql 服务后,碰到的mysql启动报错。
1. 备份mysql的data文件夹

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


[*]Mysql 默认安装时,会有两个关键路径 (C:\ProgramData\MySQL\MySQL Server 8.0 和 C:\Program Files\MySQL\MySQL Server 8.0)
[*]这两个路径 前者是 数据库数据,配置文件,数据库日志 等 Mysql 焦点数据存储地,后者是 Mysql 软件自己,即提供服务的步调。
[*]假如你不想要丢失焦点数据,请肯定要备份好 data 文件夹
假如你没有做好 mysql 的data 文件夹备份操作,请不要实验以下操作
2. 重新构建 Windows的Mysql 服务

2.1 管理员权限进入CMD

​ Step-1:按 Win + s ,输入cmd
https://img-blog.csdnimg.cn/direct/69338dcb89564d5abc43e12d6de63de3.png#pic_center
​ Step-2:右键 下令提示符,选择以管理员身份运行
https://img-blog.csdnimg.cn/direct/f3b6c12431304775bc6577f27830452f.png#pic_center
​ Step-3: 查验是否是以 C:\Windows\system32> 开头,假如是,则说明以管理员权限身份运行打开成功
https://img-blog.csdnimg.cn/direct/84571e2c8aa443f996ebeb4cbbdd07eb.png#pic_center
2.2 删除 Mysql 服务

​ Step-1: 删除 MySQL 服务
$ mysqld --remove mysql
https://img-blog.csdnimg.cn/direct/1014da3cc9c0428bb231b882689e184e.png#pic_center
​ Step-2: 重新安装 Mysql服务,并指定配置文件路径
$ mysqld --install MySQL80 --defaults-file="C:\ProgramData\MySQL\MySQL Server 8.0\my.ini"
​ Step-3:假如出现重复提示可以在 Windows中注销该服务
​ 重复提示
https://img-blog.csdnimg.cn/direct/873aea35cdef45518bb84b563214f857.png#pic_center

​ 删除服务
$ sc delete mysql
https://img-blog.csdnimg.cn/direct/a87f4fb914374fc6aeccd80fb23f71a7.png#pic_center
​ Step-4: 再次实验重新安装 Mysql服务,并指定配置文件路径
得到效果
https://img-blog.csdnimg.cn/direct/0e4d90eb949b4250afe7bcbd0a3b0974.png#pic_center
​ Step-5: 按 win + s 输入 服务
https://img-blog.csdnimg.cn/direct/016829cd7d054b5a9319a8cd68a13d2c.png#pic_center
​ Step-6: 找到刚刚注册的 MySQL81服务
https://img-blog.csdnimg.cn/direct/cbf6c59530c243eab70a50dc15522f30.png#pic_center
如今你就可以随意启动这个服务了,他继承了之前数据库的一切配置,此时,打开 navicat 进行连接,一切数据还在。
https://img-blog.csdnimg.cn/direct/f6927617b21143758b0c728eedd72b2c.png#pic_center
查抄配置文件路径
$ SELECT variable_path,COUNT(*) FROM performance_schema.variables_info WHERE variable_path<>''GROUP BY variable_path;
https://img-blog.csdnimg.cn/direct/6ce9d3cde02a4b6b8d7314023935c91f.png#pic_center
好!是想要的配置文件路径,没跑了!
3. 不指定配置文件导致的结果

   Tips: 以下篇幅都是在记载坑点,大概你有一天也会碰到,希望本博客能够给你带来思绪的启迪;
3.1 新创建了Mysql服务

​ 假如你实验了如下操作:
https://img-blog.csdnimg.cn/direct/24c49e480cc94477a7931de302b5119d.png#pic_center
   Tips:初看没有什么问题,Windows 会告诉你准确的效果,但是 Mysql 会给你在路径 C:\Program Files\MySQL\MySQL Server 8.0 下,建立一个 data 文件夹
https://img-blog.csdnimg.cn/direct/7197517278434f21b4e099a85c8937be.png#pic_center
​ 这相当于新建了一个 MySQL 的数据存放地址,也就意味着,你之前工作过的数据库和表找不到了,这是一个全新的数据库,不得不说,这是一个沮丧的事情,但是更加糟糕的还不在于此。
3.2 新建用户

​ 这时,你进入MySQL数据库输入以下指令
$ mysql -uroot -p
​ 系统提示你输入暗码,你会发现,你之前保存的暗码已经不见了,这个时候相当于一个新的用户,你可以直接不输入暗码按Enter即可进入;

​ 但是使用第三方软件时,必须要求数据库有暗码,会出现 Access denied for user 'root'@'localhost' (using password:YES) 报错,于是我们必须设置 MySQL 暗码。
$ 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,可以使用以下指令解决问题。
$ ALTER user 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';
​ 刷新权限(留意末了有分号),然后回车。
$ flush privileges;
​ 测试是否成功:输入之前第一步输入过的 mysql -uroot -p,并回车,这个时候一样会要求我们输入暗码,接下来我们输入 刚刚设置好的暗码,并回车,出现下图效果即为成功。
​ https://img-blog.csdnimg.cn/direct/493624cd13504a8f8fe2ab3214e70b83.png#pic_center
   Tips: 这个时候你很疑惑,为什么这个流程像是 Mysql卸载了重装??但是这个好像比重装更加糟糕,接下来的篇章你会看到问题所在。
3.3 无法生效配置文件

当你想要查抄一下刚刚新建的用户使用的数据库文件路径的时候,最糟糕的事情来了,你无法让更改的 my.ini 配置文件生效。
使用指令
$ show variables like '%datadir%'
你会发现默认数据存储路径如下,但是我记得我以前的数据库存储路径在 C:\ProgramData\MySQL\MySQL Server 8.0,同时我的配置文件也在 C:\ProgramData\MySQL\MySQL Server 8.0 路径下。
https://img-blog.csdnimg.cn/direct/42f4d10f75d94877a2fae01e15ca4a41.png#pic_center
这个时候,冲突发生了!
当你修改配置文件 my.ini 中的 datadir 想要重新自界说数据库存储路径时,保存后,重复上述指令,你会发现,你的修改没有变化!
https://img-blog.csdnimg.cn/direct/42f4d10f75d94877a2fae01e15ca4a41.png#pic_center
这时应该意识到 是不是加载错误了 my.ini 配置文件?
使用指令 MySQL8.0 专用指令,假如是其他版本的 MySQL 建议百度搜索,如何查抄MySQL加载的配置文件路径。
$ mysql> SELECT variable_path,COUNT(*) FROM performance_schema.variables_info WHERE variable_path<>''GROUP BY variable_path;
你会得到
$ Empty set (0.00 sec)
这贫苦就大了,说明**你没有配置。。**这意味着你不知道他的默认值,无法修改配置文件,导致你几乎丧失权限。假如你是一个平凡的开辟者,只是想要完成任务,这可以忍受,假如你是一个专业的开辟者,那么几乎完全无法忍受不能操作配置文件,这给步调带来了极大的不确定性。
假如是正常的,应该会得到如下准确示例
https://img-blog.csdnimg.cn/direct/ea101f4fa60d437a80a625a3788c3cbd.png#pic_center
   Tips: 无法修改配置文件意味着什么?


[*]意味着 MySQL的某些限定你无法修改,比如最短相应时间
[*]意味着你无法根据个人步调对MySQL 进行个人化改造
4. 总结

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


[*]至少收获了在 Windows 中 Mysql 的配置路径区别
[*]Windows 删除服务,注册服务
[*]Mysql 数据库 data 文件夹重定向
[*]Mysql 在 windows 的配置查抄
5. 参考博客


[*] 【解决】mysql本地计算机上的MySQL服务启动后停止。某些服务在未由其他服务或步调使用时将主动停止_本地计算机 上的 mysql 服务启动后停止。某些服务在未由其他服务或步调使用时将自-CSDN博客
[*] 完美解决MySQL ERROR:Access denied for user root@localhost (using password:YES)_access denied for user ‘root’@‘localhost’ (using p-CSDN博客
[*] 【完美解决】mysql启动不了:本地计算机上的MySQL服务启动后停止_本地计算机上的mysql服务启动后停止 某些-CSDN博客
[*] windows 本地安装的mysql 查找配置文件,my.cnf,my.ini位置的方法-CSDN博客
[*] mysql 数据文件夹 data 的设置与移动【windows | 实测】 - 知乎 (zhihu.com)
[*] 我无法在%ProgramData中找到我的MySQL文件夹%ProgramData% - VoidCC
[*] (7 封私信 / 80 条消息) 有没有大佬知道ProgramData文件里没有MySQL文件是怎么回事啊? - 知乎 (zhihu.com)
[*] 安装MySQL碰到的一下问题和细节_为什么program files和programdata中都有mysql-CSDN博客
[*] 关于修改MySQL数据存储路径,超详细!!!_更改mysql数据库存储位置-CSDN博客
[*] MySQL如何找到使用的是哪个配置文件?-腾讯云开辟者社区-腾讯云 (tencent.com)
[*] 新特性解读 | MySQL 8.0 轻松改配置,云上友好 - MySQL分布式中间件DBLE - SegmentFault 思否
[*] Windows情况下手动启动、停止MySQL服务. 下令行启动、停止MySQL服务. 查找MySQL安装目录._启动与停止mysql的下令是是-CSDN博客)
[*] MySQL 服务正在启动 . MySQL 服务无法启动 服务没有报告任何错误 解决方案_mysql 服务正在启动 . mysql 服务无法启动。 服务没有报告任何错误。-CSDN博客
[*] 修改MySql8.0的数据库默认存储位置_mysql8.0 数据库指定数据库存放位置怎么设置-CSDN博客
[*] net start mysql MySQL 服务正在启动 . MySQL 服务无法启动。 服务没有报告任何错误。_net start mysql无法启动-CSDN博客
[*] 关于修改MySQL数据存储路径,超详细!!!_mysql_Wang_JR1229-GitCode 开源社区 (csdn.net)
[*] mysql 查找配置文件位置方法_检察mysql配置文件位置-CSDN博客
[*] mysql启动报错:本地计算机上的mysql服务启动后停止,某些服务在未由其他服务或步调使用时将主动停止_本地计算机上的mysql服务启动后停止某些服务在未有其他服务或步调使用时将主动停止-CSDN博客
[*] 在 Windows 系统中删除「服务」的 4 种方法_windows卸载任务管理器的服务-CSDN博客
[*] windows server mysql错误1053 服务没有及时相应启动或控制请求_mob64ca12d5604e的技能博客_51CTO博客
[*] 如何解决本地计算机上的mysql服务启动停止后,某些服务在未由其他服务或步调使用时将主动停止(假如你在网上找了方法都不行,可以试试这个)-CSDN博客

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: Mysql启动报错:本地计算机上的mysql服务启动后停止,某些服务在未由其他服