这几天在windows上装了MySQL5.7,由于下载的是压缩包,所以有些东西是需要进行一下配置的。这里记录一下相关的流程
1 解压后环境变量的配置。
windows进入环境变量可以cmd输入sysdm.cpl
快捷进入系统属性,在高级->环境变量->系统变量里创建MYSQL_HOME
,变量值填入解压的 MySQL根目录。
在PATH中填入%MYSQL_HOME%\bin;
这里最好添加到PATH的最开始。因为系统对于PATH的读取是从前往后的,所以很多人修改了Java的环境变量之后发现在Java -version
的时候,并没有变化。因为他把环境变量加到了PATH的后边,前边已经有了oracle的Java,所以先读取了oracle的Java环境变量了。
2 data文件和my.ini文件的创建
在MySQL的根目录下的bin
文件夹打开管理员cmd(可以按住shift再鼠标右键,也可以右键左下角开始,然后进入管理员CMD。如果想要在windows切换盘符,直接输入c:或者d:即可进入不同的盘,然后再cd到不同路径下),然后键入下边的命令
# 这个可以用来生成data目录(用于存放数据库文件)
mysqld --initialize-insecure --user=mysql
在根目录创建my.ini
文件(配置文件)
[mysql]
default-character-set=utf8
[mysqld]
# 设置为自己MYSQL的安装目录
basedir=D:\Software\mysql\mysql-5.7.30-winx64
# 设置为MYSQL的数据目录
datadir=D:\Software\mysql\mysql-5.7.30-winx64\data
# 允许最大连接数
max_connections=20
# 端口
port=3306
# 服务器使用字符集
character_set_server=utf8
# 开启查询缓存
explicit_defaults_for_timestamp=true
# 为了使用navicat客户端,改变密码验证插件
default_authentication_plugin=mysql_native_password
# 免密登录,每次输密码是个好习惯
# skip-grant-tables
# 用于解决MySQL5.7连接后Expression #2 of SELECT list is not in GROUP BY clause...的错误
sql_mode = STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
之后在命令行输入
mysqld -install
如果提示Service successfully installed
则注册成功。其实这里可以不用进到bin目录下,因为MySQL加入到了环境变量,直接输入mysqld
会自动从PATH中进行mysqld
的搜索的
安装好之后就可以使用命令来进行启动和关闭了(默认会进行自启动,可以在此电脑右键->管理->服务和应用程序->服务,找到MySQL,右键->属性->启动类型改为手动,保存即可)。
net start mysql # 启动mysql
net stop mysql # 关闭mysql
3 MySQL在安装的时候提示丢失MSVCR120.dll
这里是因为缺少一个组件导致的。 可以下载VC redist packages for x64,然后安装即可
4 MySQL安装后修改密码
mysql -u root
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpass');
5 SQL执行错误 #3167或者ERROR 3167 (HY000):
# 需要开启show_compatibility_56选项,将off变成on
show variables like '%show_compatibility_56%'; # 查看show_compatibility_56当前值
set global show_compatibility_56=on; # 进行show_compatibility_56的值修改
show variables like '%show_compatibility_56%'; # 查看show_compatibility_56修改后的值
参考链接
MySql 5.7.20安装
MYSQL安装丢失MSVCR120.dll