本文只讲述免安装版的安装和配置,安装版自行下载.msi文件双击运行,按照指示即可安装。
1.官网https://dev.mysql.com/downloads/mysql/下载免安装版ZIP Archive:mysql-5.7.20-winx64.zip如下图所示,若要选择其他版本的,可以去https://downloads.mysql.com/archives/community/下载。
2.安装
解压下载的文件到安装目录D:\Workspace\mysql-5.7.20-winx64即可,
5.7.18版本以后,解压后,就不带my.ini这个文件了,这时我们就要手动创建好my.ini文件
(1)配置mysql目录内的 my.ini (没有就手动新建个)
写入:
[mysqld]
character-set-server=utf8
#绑定IPv4和3306端口
#bind-address = 0.0.0.0
port = 3306
# 设置mysql的安装目录
basedir=D:\workplace\mysql-5.7.20-winx64
# 设置mysql数据库的数据的存放目录
datadir=D:\workplace\mysql-5.7.20-winx64\data
# 允许最大连接数
max_connections=200
max_allowed_packet = 1024M
[mysql]
default-character-set=utf8
[mysql.server]
default-character-set=utf8
[mysql_safe]
default-character-set=utf8
[client]
default-character-set=utf8
port=3306
同时将该文件复制到
D:\Workspace\mysql-5.7.20-winx64\bin目录下
(2)以管理员身份运行cmd,
cd /d D:\Workspace\mysql-5.7.20-winx64\bin
安装服务 :mysqld install
若出现The current server installed: D:\Workspace\mysql-5.7.20-winx64\bin\mysqld MySQL表示之前安装过服务,则mysqld -remove MySQL卸载原先的服务
Services successfully installed.表示服务安装成功
3.启动服务
net start mysql
若出现mysql服务无法启动,则
(1)检查mysql目录下有没有data目录,没有则
输入命令mysqld --initialize-insecure --user=mysql
执行完上面命令后,MySQL会自建一个data文件夹,并且建好默认数据库,登录的用户名为root,密码为空,之后就可以通过命令net start mysql启动mysql服务了。
注:MySQL升级到5.7版本是没有data文件夹的,执行mysqld --initialize-insecure --user=mysql命令会自动新建data文件夹。
4.配置环境变量
找到--高级系统变量--环境变量--系统变量
新建环境变量:变量名 MYSQL_HOME,变量值 为D:\Workspace\mysql-5.7.20-winx64;
找到Path--编辑--在最后面加上 ;%MYSQL_HOME%\bin; (注意:一定要是\bin不能是/bin)
(或者直接在Path环境变量中加上变量值D:\Workspace\mysql-5.7.20-winx64\bin;一步到位)
5.测试
重新打开cmd(不用管理员身份)
mysql -u root -p即可访问数据库,(此时密码为空)
6.修改密码
mysql -u root -p进入mysql命令行模式下:
set password for root@localhost = password('12345678'); 即可修改root用户密码为12345678
或者mysqladmin -u root -p password 此处输入新的密码
Enter password: 此处输入旧的密码(直接按enter键即可)
解决问题:this is incompatible with sql_mode=only_full_group_by
mysql -u root -p进入mysql命令行模式下:
解决方法:
set @@GLOBAL.sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
set sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';