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

慈云数据 2024-05-14 技术支持 38 0

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

文章目录

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

          背景:在修改了 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

            在这里插入图片描述

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

            在这里插入图片描述

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

            在这里插入图片描述

            2.2 删除 Mysql 服务

            ​ Step-1: 删除 MySQL 服务

            $ mysqld --remove mysql
            

            在这里插入图片描述

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

            $ mysqld --install MySQL80 --defaults-file="C:\ProgramData\MySQL\MySQL Server 8.0\my.ini"
            

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

            ​ 重复提示

            在这里插入图片描述

            ​ 删除服务

            $ sc delete mysql
            

            在这里插入图片描述

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

            得到结果

            在这里插入图片描述

            ​ Step-5: 按 win + s 输入 服务

            在这里插入图片描述

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

            在这里插入图片描述

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

            在这里插入图片描述

            检查配置文件路径

            $ 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数据库输入以下指令

            $ 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,并回车,这个时候一样会要求我们输入密码,接下来我们输入 刚刚设置好的密码,并回车,出现下图结果即为成功。

            在这里插入图片描述

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

            3.3 无法生效配置文件

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

            使用指令

            $ 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加载的配置文件路径。

            $ mysql> SELECT variable_path,COUNT(*) FROM performance_schema.variables_info WHERE variable_path''  GROUP BY variable_path;
            

            你会得到

            $ Empty set (0.00 sec)
            

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

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

            在这里插入图片描述

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

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

              4. 总结

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

              ​ 收获:

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

                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博客

微信扫一扫加客服

微信扫一扫加客服

点击启动AI问答
Draggable Icon