一、完全卸载Mysql
第一步:停止服务
启动cmd>输入services.msc>找到mySQL>停止SQL服务
第二步:删除文件
找到你的安装目录,将文件全部删除
第三步:删除注册表
启动cmd->输入regedit->搜索mySQL,右键全部删除(或者依据以下路径找到MySQL,右键删除)
HKEY_LOCAL_MACHINE/SYSTEM/ControlSet001/Services/Eventlog/Applications/MySQL
HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/Eventlog/Applications/MySQL(有Mysql文件夹就删掉,没有就可以开始安装新的Mysql了)
二、安装Musql5.7.21-winx64免安装版
1、mysql安装包可到官网下载,地址:https://dev.mysql.com/downloads/mysql
2. 解压文件
直接解压,解压后安装包目录如下:(注意:此时没有data目录和.ini文件)
3. 将文件放入自己想放的目录,下面是我放的目录
4. 由于解压后没有.ini文件在此目录下新建my.ini文件
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
#设置3306端口
port = 3306
# 设置mysql的安装目录
basedir=C:/JavaDevelop/tools/mysql-5.7.21-winx64 (注:1、与第3步中的目录对应,2、反斜杠:如果不是反斜杠执行Mysql)
# 设置mysql数据库的数据的存放目录datadir=C:/JavaDevelop/tools/mysql-5.7.21-winx64/data
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
5. 配置环境变量
打开控制面板选择“高级系统设置”
在弹出的选项卡里选择“高级”,然后选择“环境变量”
系统变量里面新建“MYSQL_HOME”值“C:\JavaDevelop\tools\mysql-5.7.21-winx64”(第3步中存放的路径)
编辑系统变量 Path ,将 ;%MYSQL_HOME%\bin 添加到 Path 变量值后面。
6. MYSQL安装
“win+Q”打开搜索CMD
以管理员身份运行“命令提示符”。
进入MYSQL的目录 cd C:\JavaDevelop\tools\mysql-5.7.21-winx64
1、 运行mysqld --initialize
2、运行mysqld -install
3、运行net start mysql启动服务
4、输入以下命令登录mysql:
mysql -u root -p,输入初始密码,初始密码为空,按回车直接登录数据库
5、修改mysql登录密码,输入以下命令(注意要输入分号)
set password for root@localhost = password('root');
关于5.7版本的ONLY_FULL_GROUP_BY 模式
在查询Myql官方文档后知道原来Mysql5.7对SQL Modes做了修改,其中ONLY_FULL_GROUP_BY 模式成为了默认模式
解决方法:
1、查看sql_mode
1
|
select
@@sql_mode
|
查询出来的值为:
1
|
ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
|
2、去掉ONLY_FULL_GROUP_BY,重新设置值。
1
2
|
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'
;
|
3、上面是改变了全局sql_mode,对于新建的数据库有效。对于已存在的数据库,则需要在对应的数据下执行:
1
|
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'
;
|