关于MySQL5.7.17免安装配置问题。(win10亦可)

2月8号开新书-->MySQL必知必会。结果在安装MySQL的时候,不停的遇到“服务无法启动,没有报告任何问题”,或者在进入MySQL的时候出现的经典10061问题。卧槽,整整一个下午都没弄好。之后,反思......总结网上朋友们的博客,定位到我的问题是在生成data文件的时候,因为,我每次执行命令,data文件夹里面的3个文件夹(mysql,sys,performance_schema)从来没有出现过。所以,我的问题一定是在初始化data文件的时候(当然你可以复制安装成功的mysql的data文件过来,不过这个方法之后产生的问题请参考其他博文)


按我参考的博客来说,这个方法是适用于5.7版本的,5.6的没试过。

我安装的是mysql-5.7.17-winx64

原文地址:http://www.cnblogs.com/c3gen/p/6168765.html

 

 

下载地址在MySQL官网,看不懂可以使用谷歌或者360浏览器翻译成中文看,这里不再多说,直接说配置问题。

 我的MySQL安装地址:C:\MySQL

下载解压完以后(解压地址下文统一按“安装地址”称):
1)需要配置环境变量,具体在我的电脑--属性--高级--环境变量--系统变量

在这有好多说需要先:新建一个MYSQL_HOME的系统变量,具体是:MYSQL_HOME = 你的MYSQL安装地址
然后在Path下添加%MYSQL_HOME%\bin;(注意分号结尾,添加的时候要么在最开始添加,要么在最后添加。想在中间添加的,一定要添加在原有的分号(;)之后,并且以分号结尾)
首先说这个名字,其实无所谓,主要是要让别人知道这个是什么,所以起这个名字可以说任何开发人员都可以明白这个是什么意思(约定俗成)。

再就是Path下添加的变量是因为你新建了MYSQL_HOME的系统变量,所以添加的时候使用百分号引用变量,那么就是现在这样 -- %MYSQL_HOME%\bin;。

这时候,当我们在cmd中输入命令时,Windows首先会在当前目录中寻找可执行文件或脚本,如果没有找到,Windows会接着遍历环境变量Path中定义的路径。由于将%MYSQL_HOME%\bin添加到了Path中,而这里%MYSQL_HOME%实际上是引用了前面定义的另一个变量,其值是MySQL的安装目录。因此,Windows会在执行命令时搜索目录C:\MySQL\bin,而MySQL执行脚本的位置在这里。

当然你也可以完全不管什么MySQL_HOME,直接在Path里添加:MYSQL的安装地址\bin
比如说我的安装地址是C:\MySQL

那么我就可以配置成: C:\MySQL\bin;(注意分号结尾)

2)创建my.ini文件

每个安装目录下都有一个my-default.ini文件,复制一份,重命名为my.ini。

之后在[mysqld]下面添加

# 安装目录
basedir = C:\MySQL
# 数据存放目录
datadir = C:\MySQL\data

这里需要检查一下安装地址下的data文件夹,如果不存在的话,最好自己创建一下,空文件夹。

 

 

3)以管理员身份打开cmd窗口,"将目录切换到你安装地址的bin目录",好多博客都说要切地址,如果你配置了%MYSQL_HOME%环境变量的话,其实完全没必要。但是有另一个需要注意的地方是:不要用你在设置环境变量(%MYSQL_HOME%)之前打开的cmd窗口,新的环境变量只在新的cmd窗口中起作用。

如果你没有配置%MYSQL_HOME%环境变量,那么你就必须要切地址了,切换到mysql安装地址的bin目录

执行 mysqld -install

-----关键------

继续执行 mysqld --initialize-insecure -user=mysql;

注意命令格式,initialize前面有两个“-”,一定是这样执行的,如果不是,那么你会出现这样的错误:

一定是执行mysqld --initialize-insecure -user=mysql; 不多也不少

这时候,你可以看你的data文件夹下只要存在(mysql,sys,performance_schema)三个文件夹,和若干白纸片(未知的文件类型),那么恭喜你,你成功了。

4)接下来启动mysql服务:net start mysql

5)进入mysql:mysql -uroot -p

这时候,如果你的data文件夹是复制过来的,那么请输入你原来的mysql密码,如果不正确请参考其他博文。

如果是第一次安装,且按照本文配置下来的,那么直接回车进入mysql,mysql安装默认没有密码。

6)修改root密码

首先要切换数据库mysql

use mysql

执行 set password=password('root');设置密码。并刷新权限flush privileges;

这里的修改密码和5.6不一样,因为5.7的user表没有password这个列。可以使用 desc user;来查看user表的数据结构。

\q退出mysql重新登录mysql。

 

至此,成功。

其实一开始并没有发现那三个文件夹的问题,弄了半天,我都怀疑是电脑的环境有问题了(公司的电脑win7)。刚好前几天买了新笔记本,回去搞我那个新买的笔记本(win10)。

win10的系统,在网上又看了半天,突然发现我的data文件夹一直少了三个文件夹(mysql,sys,performance_schema),然后又查了下这些文件夹的作用,知道mysql和sys是很重要的文件,mysql是修改密码时候用到的,sys貌似是登录时候用到的,这个还不是很清楚,一会再研究。主要是感觉自己找对了方向,就着急去定位怎么生成这三个文件夹。

然后就找到了 mysqld --initialize-insecure -user=mysql;(注意是两个“-”)

我看的那个博文里是执行的mysqld --initialize-insecure --user=mysql;

我就在想是不是这条语句的问题,导致文件生成不完整。结果一试,特么的。原来就是你。卧槽。我……………………

心中一万只草泥马跑过,不提了。

隔天来公司电脑上执行,一次成功。整理出来,希望能帮助到大家。

 

 

2月16日补:

在cmd中执行  mysqld --verbose --help

在输出中可以找到

--initialize

Create the default database and exit. Create a super user
with a random expired password and store it into the log.
--initialize-insecure

Create the default database and exit. Create a super user
with empty password.

 

结果太明显了,所以养成看官方文档的习惯很重要。

posted @ 2017-02-09 11:50  难得糊涂Ck  阅读(1367)  评论(0编辑  收藏  举报