Windows10安装Mysql 8.0数据库提示服务无法启动的终极解决办法和根本原因 | 您所在的位置:网站首页 › mysql80服务改名 › Windows10安装Mysql 8.0数据库提示服务无法启动的终极解决办法和根本原因 |
先说结论:这是MYSQL官方原生带来的一个巨大BUG!责任在MYSQL官方。
症状:安装完毕后,第一次使用很正常,重启操作系统,马上出现提示mysql没有启动。
(一)使用net start mysql启动,失败。提示如下:
C:\Program Files\MySQL\MySQL Server 8.0\bin>mysqld --install
Install/Remove of the Service Denied!
C:\Program Files\MySQL\MySQL Server 8.0\bin>net start mysql
服务名无效。
请键入 NET HELPMSG 2185 以获得更多的帮助。
C:\Program Files\MySQL\MySQL Server 8.0\bin>net start mysql80
MySQL80 服务正在启动 ........
MySQL80 服务无法启动。
请键入 NET HELPMSG 3523 以获得更多的帮助。
(二)查看原因,红色部分提示没有这个目录,注意!这是官方原生BUG!
C:\Program Files\MySQL\MySQL Server 8.0\bin>NET HELPMSG 3523
C:\Program Files\MySQL\MySQL Server 8.0\bin>mysqld --console 2022-01-03T16:13:25.689802Z 0 [System] [MY-010116] [Server] C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqld.exe (mysqld 8.0.26) starting as process 12364 2022-01-03T16:13:25.692845Z 0 [Warning] [MY-010091] [Server] Can't create test file C:\Program Files\MySQL\MySQL Server 8.0\data\mysqld_tmp_file_case_insensitive_test.lower-test 2022-01-03T16:13:25.692968Z 0 [Warning] [MY-010091] [Server] Can't create test file C:\Program Files\MySQL\MySQL Server 8.0\data\mysqld_tmp_file_case_insensitive_test.lower-test2022-01-03T16:13:25.694705Z 0 [ERROR] [MY-013276] [Server] Failed to set datadir to 'C:\Program Files\MySQL\MySQL Server 8.0\data\' (OS errno: 2 - No such file or directory) 2022-01-03T16:13:25.697081Z 0 [ERROR] [MY-010119] [Server] Aborting 2022-01-03T16:13:25.697276Z 0 [System] [MY-010910] [Server] C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqld.exe: Shutdown complete (mysqld 8.0.26) MySQL Community Server - GPL. (三)注意!这是官方原生BUG!一大批用户被官方这个BUG搞得崩溃。不怪用户。例如下面这些用户:如果在mysql的安装路径(C:\Program Files\MySQL\MySQL Server 8.0)中没有my.ini配置文件,可以从C:\ProgramData\MySQL\MySQL Server 8.0\my.ini,直接拷贝过来。 如果怕出错可以参考下图,但是记得把路径改为你自己的路径。如果之前没有配置过,在MySQL安装目录根目录下新建一个文本文件,参照下面的写法。 自己手动创建一个,文件名为:my.ini,内容如下: 具体方法: (1)运行CMD进入mysql的bin目录:cd C:\Program Files\MySQL\MySQL Server 8.0\bin。 (2)执行 mysqld --defaults-file=my.ini --initialize-insecure(最好是复制我的,不然容易打错)(mysqld --initialize-insecure) 进行初始化。第一次执行的话,时间会久一些,执行结束后没有输出信息,但是,查看bin的同级目录下会多出一个data文件夹,里面一堆文件。 说明:在mysql5.7以上版本中默认没有这个data目录,即没有初始化服务。需要先初始化mysql才可以启动服务,否则会报 “服务没有报告任何错误”,启动失败。 (六)再次执行net start mysql命令启动服务,启动成功!最后很重要,进去之后一定要设置密码,不然mysql会生成随机密码,第二次就进不去了!设置密码的方式有一些变化,老版本密码是保存在mysql数据库user表的password中,而5.7.9以后的password字段变为了authentication_string,直接sql命令更改其值,再重启mysql服务即可! (七)修改mysql8.0本地密码。如果没来得及改MYSQL密码,可用以下方法重置密码。依次执行命令如下(设置密码为111111): cd C:\Program Files\MySQL\MySQL Server 8.0\bin net stop Mysql mysqld --console --skip-grant-tables --shared-memory 依次执行以下命令 cd C:\Program Files\MySQL\MySQL Server 8.0\bin mysql -u root -p //不输入密码直接回车 use mysql update user set authentication_string='' where user='root'; quit 依次执行以下命令 net start Mysql cd C:\Program Files\MySQL\MySQL Server 8.0\bin mysql -u root -p ALTER USER 'root'@'localhost' IDENTIFIED BY '111111'; |
CopyRight 2018-2019 实验室设备网 版权所有 |