解决Windows安装解压版MySQL出现服务正在启动-服务无法启动的问题

时间:2024-03-16 09:42:03

最近重装了系统,去MySQL官网下载了最新的MySQL5.7.9,我选择的是解压版,安装之后启动服务的时候,提示服务无法启动,在网上找了很多教程,弄了很久都没有弄好,后来还是决定去英文官网找找答案,终于在官网发现了这个:

 

     As of MySQL 5.7.6, the Zip Archive no longer includes a data directory. To initialize a MySQL installation by creating the data directory and populating the tables in the mysql system database, initialize MySQL using either --initialize or --initialize-insecure. For additional information, see Section 2.10.1.1, “Initializing the Data Directory Manually Using mysqld”.

 

     大致意思是说在MySQL5.76之后,解压版不再包含一个data目录了,初始化安装MySQL需要使用 --initialize 或者--initialize-insecure指令,然后我就尝试了一下。

 

 

方法:

1.卸载掉以前安装的MySQL服务,如图2(如果在命令行窗口执行net start mysql出现图1提示的请忽视这一步,直接下一步)

解决Windows安装解压版MySQL出现服务正在启动-服务无法启动的问题

                           图1

 

切换到自己MySQL根目录的bin目录下并执行mysqld --remove.

解决Windows安装解压版MySQL出现服务正在启动-服务无法启动的问题

                     图2

2.检查一下自己的my.ini是否配置正确,如果怕出错可以参考我的,但是记得把路径改为你自己的路径。如果之前没有配置过,在MySQL安装目录根目录下新建一个文本文件,参照下面的写法配置。(我的MySQL目录是D:\MySoftWare\mysql-5.7.9-winx64)

 

[mysqld]

#basedir代表自己MySQL的安装根目录
basedir = D:\\MySoftWare\\mysql-5.7.9-winx64

#datadir代表自己MySQL的数据库保存的目录,如果没有在MySQL安装的根目录下新建一个data文件夹 
datadir = D:\\MySoftWare\\mysql-5.7.9-winx64\\data

#port代表端口号
port = 3306
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES 

解决Windows安装解压版MySQL出现服务正在启动-服务无法启动的问题
 

3.在dos窗口下将目录切换到MySQL的根目录,然后执行bin\mysqld --defaults-file=my.ini --initialize-insecure(最好是复制我的,不然容易打错)。

解决Windows安装解压版MySQL出现服务正在启动-服务无法启动的问题
 

4.执行bin\mysqld --install,进行MySQL服务的安装。

解决Windows安装解压版MySQL出现服务正在启动-服务无法启动的问题
 

5.再尝试启动MySQL服务,在命令行窗口执行net start mysql,看看自己的MySQL服务是否能成功启动了!(Enter password那里,初始密码为空,直接回车就行)

解决Windows安装解压版MySQL出现服务正在启动-服务无法启动的问题

(我自己备注:需要在管理员权限下,在C:\WINDOWS\system32>net start mysql 执行,同时在资源管理器中将mysqld结束任务)

6.最后很重要,进去之后一定要设置密码,不然mysql会生成随机密码,第二次就进不去了!5.7.9设置密码的方式有一些变化,老版本密码是保存在mysql数据库user表的password中,而5.7.9的password字段变为了authentication_string,直接sql命令更改其值,再重启mysql服务即可!

依次执行命令如下(设置密码为123456):

use mysql;

update user set authentication_string="123456";

exit;

net stop mysql;

net start mysql;

mysql -u root -p

[输入密码]

-------------我是分割线,成功进入mysql------------