在MySQL官网Download页面上默认只能下载最新的版本,现在MySQL5.7已经被放到了archives这个页面历史版本里。
这个链接:https://downloads.mysql.com/archives/community/ 下载下来的ZIP压缩包只包含MySQL Server(最小化安装),也是下面所写内容中用到的版本。
msi图形化安装的版本在这MySQL Installer
补充: 图形化安装需要安装Visual Studio 2013 Redistributable依赖才能运行安装器,这里给出两个版本下地址。
x86:http://download.microsoft.com/download/1/8/0/180fa2ce-506d-4032-aad1-9d7636f85179/vcredist_x86.exe
x64:http://download.microsoft.com/download/1/8/0/180fa2ce-506d-4032-aad1-9d7636f85179/vcredist_x64.exe
我解压到了
D:\MySQL\MySQL57
然后设置环境变量,在Path最后加一条(win7注意前边加分号):
D:\MySQL\MySQL57\bin
保存以后用Win+R输入cmd启动控制台输入
mysqld --verbose --help
验证一下是否有效。(顺便看看mysqld怎么用,Emmmm…这个说明有点长啊,得让屏幕滚一会儿)
注意: 解压时安装路径注意不要使用 Program Files 或者 Program Files (x86) 这种中间带空格的文件夹,还有数据库的存放地址也不要用带空格的文件夹。(好吧其实我是忘了安装路径和Data路径到底是哪个不能使用带空格的文件夹存放)
MySQL官方的Doc中指出
从MySQL 5.7.18开始,my-default.ini不再包含在分发包中或由分发包安装。
As of MySQL 5.7.18, my-default.ini is no longer included in or installed by distribution packages.
If you install on Windows from a Zip archive, you can copy the my-default.ini template file in the base installation directory to my.ini and use the latter as the default option file.
所以要手动在安装目录 D:\MySQL\MySQL57 下新建一个my.ini写入以下内容,(注意修改路径)
[mysqld]
port = 3306
basedir=D:\MySQL\MySQL57
# MySQL程序安装目录
datadir=D:\MySQL\MySQL57\Data
# 数据库文件存放地址
max_connections=200
# 最大连接数
character-set-server=utf8
default-storage-engine=INNODB
# 数据库默认使用引擎
[mysql]
default-character-set=utf8
# mysql客户端默认的字符集,5.7才有的,5.6以及之前的版本没有default-character-set属性
my.ini建好后在控制台中用mysqld初始化数据库
mysqld --initialize-insecure --user=mysql
在控制台中输入
mysqld -install
或者
mysqld -install MySQL57
(加上“MySQL57”表示自定义服务名称为MySQL57,不写的话默认服务名是MySql)
等待片刻,出现 Service successfully installed 提示,说明安装成功。
这时按“win + R” 打开运行,输入“services.msc”,点击确定打开服务列表就能看到名为MySQL(或MySQL57 )的服务。
在没有使用初始化命令mysqld --initialize或者初始化失败时,启动服务会显示
MySQL 服务无法启动. 服务没有报告任何错误
如果想删除MySql服务,先让服务停止运行,然后用下边命令删除
sc delete 服务名
例如:
sc delete mysql
先启动服务:
net start MySQL【或者是MySQL57】
此时数据库还 没有密码,接下来设置密码为123456
mysqladmin -uroot -p password 123456 【回车】
Enter password: 【直接回车,不输入】
这样就将root密码设定为了123456。
由于上边初始化时使用了 –initialize-insecure 参数,所以在“Enter password: ”时直接回车不用输入密码。不加-insecure使用mysqld --initialize命令初始化数据库时会随机生成密码,这样在修改密码时Enter password要输入随机生成的密码,随机密码还要去找,比较麻烦。这个随机密码在data目录下.err结尾的文件中,直接查找temporary这个单词这一行应该能找到随机生成的密码。