Win7安装配置MySQL5.7
由于网上的教程大部分是MySQL5.7之前的版本,较5.7版本在命令行和表列有些许差异,所以写此篇博客来归纳自己在安装时候所遇到的问题,以提醒后来者。(我用的是Win764位系统,所以此文只针对Windows各系统,其它系统请参照解决)
安装步骤:
- 下载MySQL5.7安装包
- 解压到合适的路径
- 更改配置文件
- 安装mysql服务
- 更改root密码
安装详解:
下载MySQL5.7安装包
http://dev.mysql.com/downloads/mysql/
按需选择版本,这里以zip archive版为例。将ZIP压缩文件解压到合适路径,建议路径中的文件夹名不含有空格。
配置文件
为避免数据库中的汉字乱码之类的,建议先配置一下默认文件。在mysql-5.7.12-winx64目录下,新建my.ini文件,复制下面的代码保存。[mysql] # 设置mysql客户端默认字符集 default-character-set=utf8 [mysqld] #设置3306端口 port = 3306 # 设置mysql的安装目录 basedir=D:\Program\MySQL\mysql-5.7.12-winx64 # 设置mysql数据库的数据的存放目录 datadir=D:\Program\MySQL\mysql-5.7.12-winx64\data # 允许最大连接数 max_connections=200 # 服务端使用的字符集默认为8比特编码的latin1字符集 character-set-server=utf8 # 创建新表时将使用的默认存储引擎 default-storage-engine=INNODB
配置MySQL
命令行打开所在路径
以管理员身份运行cmd.exe(在运行里搜索cmd或者在C:\Windows\System32下找到cmd右击),然后将目录切换到解压文件的bin目录。以我的路径为例:D:\Program\MySQL\mysql-5.7.12-winx64,命令依次为:D: cd Program cd MySQL cd mysql-5.7.12-winx64 cd bin
每一行中间都要有一个回车使每一行单独运行。为一劳永逸,可以将MySQL路径添加进环境变量中,不必每次都要进入bin目录,具体做法为:右键我的电脑->属性->高级系统设置->环境变量->Path->编辑,将mysql软件下的bin目录的全路径粘贴进去,注意添加前看原路径末尾有没有英文的分号“;”,如果没有则加上,最后别忘了在路径后面加个“;”以保证各路径的分离,然后点保存。如
D:\Program\MySQL\mysql-5.7.12-winx64\bin;
进入bin目录后输入
mysqld –initialize
完成实例初始化,不做这一步会报错
mysqld install
回车运行,注意是mysqld,不是
mysql。最后一行出现successful之类的代表安装成功了,进入下一步。
更改root密码
这一部分是5.7版本区别于之前版本最明显的地方,我自己在这一部分也是遇到了很多问题,这一过程中我不断停止和开启MySQL服务,所以一下每一步操作若出现错误请切换MySQL服务开启/停止状态再次尝试。登录MySQL
若参照其它资料所讲,输入root密码时为空是登录不上的,所以解决办法为要先跳过密码认证,做法为:cmd下输入mysqld --defaults-file="D:\Program\MySQL\mysql-5.7.12-winx64\my.ini" --console --skip-grant-tables
需要说明的是,此时该窗口不可再写入。这也是检验命令是否正确执行的一个标准,保持开启不要关闭此窗口。
更改root密码
打开另外一个命令行窗口输入命令mysql -u root -p
密码为空,直接回车进入mysql命令行界面,在命令行下执行
use mysql;
执行如下语句更新用户“root”的密码:
update user set authentication_string=password("新密码") where user="root";
(注意:1. user的列名password已在5.7版本中被替换为authentication_string,所以很多文章中都是用的
update user set password=password("新密码") where user="root";若在新版本中使用会提示找不到列名的错误。 2. 不用mysqladmin -u root -p password '新密码'修改密码,会提示如下所示的错误:You cannot use 'password' command as mysqld runs with grant tables disabled (was started with --skip-grant-tables).Use: "mysqladmin flush-privileges password '*'" instead)
此时关闭“跳过密码认证”的命令行窗口,在cmd中输入
net start mysql
开启mysql服务,或在任务管理器中的“服务”中找到mysql右键开启。
此外,必须执行alter user 'root'@'localhost' identified by '新密码'
重置密码,否则使用mysql时会提示以下错误
You must reset your password using ALTER USER statement before executing this statement.
- 到这一步应该就可以正常使用了,如果有什么错误可以重启mysql服务试试,再不行可以留言一起探讨。
彩蛋一枚!
偶然在网上发现的,我没有试,应该是正确的步骤,比上面简单多了。
(使用的mysql-5.7.9):
1、修改my.ini,配置好data目录,放到bin路径 下:
2、执行:mysqld –initialize –user=mysql –console
会自动生成data目录,还有一个随机密码,记下来。
3、执行:mysqld –console 启动mysql,登录mysql -uroot -p 输入刚才记录的密码,执行:set password = password(‘root’)修改密码。
4/杀掉mysqld进程。
安装服务,执行:mysqld –install MySQL –defaults-file=”E:\mysql-5.7.9-winx64\my.ini” 自动修改路径 。
net start mysql
ok!