完全卸载Mysql+安装Musql5.7.21-winx64免安装版

一、完全卸载Mysql

第一步:停止服务

启动cmd>输入services.msc>找到mySQL>停止SQL服务

 完全卸载Mysql+安装Musql5.7.21-winx64免安装版

 

第二步:删除文件

找到你的安装目录,将文件全部删除

 

第三步:删除注册表

启动cmd->输入regedit->搜索mySQL,右键全部删除(或者依据以下路径找到MySQL,右键删除)

HKEY_LOCAL_MACHINE/SYSTEM/ControlSet001/Services/Eventlog/Applications/MySQL 
HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/Eventlog/Applications/MySQL(有Mysql文件夹就删掉,没有就可以开始安装新的Mysql了)

完全卸载Mysql+安装Musql5.7.21-winx64免安装版


二、安装Musql5.7.21-winx64免安装版

1、mysql安装包可到官网下载,地址:https://dev.mysql.com/downloads/mysql

完全卸载Mysql+安装Musql5.7.21-winx64免安装版

完全卸载Mysql+安装Musql5.7.21-winx64免安装版

2. 解压文件

   直接解压,解压后安装包目录如下:(注意:此时没有data目录和.ini文件

 完全卸载Mysql+安装Musql5.7.21-winx64免安装版

3. 将文件放入自己想放的目录,下面是我放的目录

完全卸载Mysql+安装Musql5.7.21-winx64免安装版

 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+安装Musql5.7.21-winx64免安装版

在弹出的选项卡里选择“高级”,然后选择“环境变量”

 完全卸载Mysql+安装Musql5.7.21-winx64免安装版

系统变量里面新建MYSQL_HOME”值“C:\JavaDevelop\tools\mysql-5.7.21-winx64”(第3步中存放的路径)

完全卸载Mysql+安装Musql5.7.21-winx64免安装版


编辑系统变量 Path ,将 ;%MYSQL_HOME%\bin 添加到 Path 变量值后面。

 完全卸载Mysql+安装Musql5.7.21-winx64免安装版

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 [email protected] = password('root');  

关于5.7版本的ONLY_FULL_GROUP_BY 模式


数据库从5.5版本直接升级到了5.7版本,在执行Sql的时候出现异常 

 在查询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';