最近重装了系统,去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提示的请忽视这一步,直接下一步)
图1
切换到自己MySQL根目录的bin目录下并执行mysqld --remove.
图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
3.在dos窗口下将目录切换到MySQL的根目录,然后执行bin\mysqld --defaults-file=my.ini --initialize-insecure(最好是复制我的,不然容易打错)。
4.执行bin\mysqld --install,进行MySQL服务的安装。
5.再尝试启动MySQL服务,在命令行窗口执行net start mysql,看看自己的MySQL服务是否能成功启动了!(Enter password那里,初始密码为空,直接回车就行)
(我自己备注:需要在管理员权限下,在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------------