背景:

  由于之前一个项目中用的数据库版本是免安装的mysql5.5.36,但是后来经过第三方测试公司测试出该数据库存在很多漏洞需要升级数据库才能解决。所以觉得将数据库更换为mysql-5.7.21-winx64版本的,由于该项目数据量不是很大并且数据库版本跨度比较大,所以采取了“先卸载,再安装”的方式来进行对数据的升级、改造。

环境:

  操作系统:server 2012 64bit

  数据库:主从设置

步骤:

  一、卸载原有的Mysql数据库

  1. 删除注册表

  (1)HKEY_LOCAL_MACHINE/SYSTEM/ControlSet001/Services/Eventlog/Application/MySQL

  (2)HKEY_LOCAL_MACHINE/SYSTEM/ControlSet002/Services/Eventlog/Application/MySQL【不一定有】

  (3)HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/Eventlog/Application/MySQL【不一定有】

  2. 删除服务

  (1) 用管理员身份启动cmd,执行sc delete mysql服务名称

  

  3. 最后将目录下原来的数据库文件删除即可

  

  二、安装数据库:

    1.将新的数据库放到原来数据库的目录下。与mysql 5.6不同的是5.7版本中没有data文件夹和my.ini文件。所以需要在mysql-5.7.22-winx64目录下创建data文件夹以及my.ini文件。其中my.ini文件中内容为:

[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
#设置3306端口
port = 3306
# 设置mysql的安装目录
basedir=E:/seegot/mysql-5.7.22-winx64
# 设置mysql数据库的数据的存放目录
datadir=E:/seegot/mysql-5.7.22-winx64/data
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB

  2.以管理员身份运行cmd,将目录切换到mysql安装文件夹下的bin目录下执行 mysqld install

  

  3.bin目录下,输入 mysqld --initialize --user=root --console 下图红色下划线为root用户的密码(注意:这里的密码通过复制来进行登录,自己输入可能会疯掉。。。别问我怎么知道的)

  

  4.重启mysql服务。在bin目录下,mysql -uroot -p,输入初始化root密码登录。然后通过 set password=password('root') 修改密码

  

5.导入之前的数据库。

  6.修改数据库为远程可以登录,这个就不需要介绍了吧。(mysql ---user --localhost-->%  重启数据库服务)

7.最蛋疼的问题在导入数据库的时候报错了。。。 新版数据库有一个坑,这个坑就是*****group by***full***什么鬼的,

两种解决办法:(1)select @@sql_mode ;查询出的结果为

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

  重点就出现在这个ONLY_FULL_GROUP_BY 我们要做的就是删除它。

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‘;

  上面这个改变的是全局的,也就是以后新创建的数据库不存在这个问题,那么我们还需要修改已经存在的数据库的这个问题,所以就用到了

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‘;

  最后,如果这几种方式实在不行,那么试一试在mysql数据库文件目录下的my.ini

sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'

  由于我的数据库是需要开启定时任务的,所以我们要检查下数据库是否开启了定时任务。

-- 检查是否开启定时任务
SELECT @@event_scheduler;
SHOW VARIABLES LIKE 'event%'; -- 如果未开启,那么进行开启
set GLOBAL event_scheduler = 1;
SET GLOBAL event_scheduler = ON;

或者直接在my.ini的mysqld后面加上event_scheduler=ON  即可。

  完成以上操作后,我们再将数据库配置为主从库即可。配置主从数据库请参考之前的博客。

mysql数据库卸载和安装的更多相关文章

  1. Mysql数据库卸载

    Mysql数据库卸载的操作流程(Windows10): 1.停止mysql的所有服务 方法一:此电脑——管理——服务中查找到所有Mysql的服务,并停止. 方法二:cmd——net stop mysq ...

  2. MySQL数据库服务器(YUM)安装

    1. 概述2. 部署过程2.1 虚拟机console的NFS服务端配置2.2 虚拟机node15的NFS客户端配置2.3 虚拟机安装MySQL环境2.4 配置MySQL3. 错误及解决3.1 启动失败 ...

  3. Mysql数据库介绍、安装和配置文件

    Mysql数据库介绍.安装和配置文件 MySQL数据库介绍 mysql是开源关系型数据库,遵循GPL协议. mysql的特点是性能卓越且服务稳定,开源,无版本限制,成本低,单进程多线程,多用户,基于C ...

  4. MySQL数据库离线包安装与注册

    本文主要介绍了MySQL数据库的离线安装和将MySQL服务注册为Windows应用服务的主要步骤. 1.下在安装程序包 MySQL Community Server 5.6.15 官方下载地址http ...

  5. Linux系统环境下MySQL数据库源代码的安装

    Linux系统环境下MySQL数据库源代码的安装 基本环境:CentOS Linux release 7.8.2003 (Core).MySQL5.6 一.      安装环境准备 若要在Linux系 ...

  6. linux下mysql的卸载、安装全过程

    卸载mysql 1.查找以前是否装有mysql 命令:rpm -qa|grep -i mysql 可以看到mysql的两个包: mysql-4.1.12-3.RHEL4.1 mysqlclient10 ...

  7. mac下mysql的卸载和安装

    1. mysql的卸载 1 sudo rm /usr/local/mysql 2 sudo rm -rf /usr/local/mysql* 3 sudo rm -rf /Library/Startu ...

  8. MySQL从卸载到安装!图文详细版(你想知道的全都有!!)

    2. MySQL的下载.安装.配置 2.1 MySQL的四大版本 MySQL Community Server社区版本,开源免费,自由下载,但不提供官方技术支持,适用于大多数普通用户. MySQL E ...

  9. CentOS7minimal MySql的卸载及安装

    因为CentOS7精简版默认是有残留的MySql的,所以开始时一定要先卸载掉原来的MySql 首先要使用root用户登录 卸载: 1.卸载原有程序 yum remove mysql mysql-ser ...

随机推荐

  1. 给你的手机加上安全保障,请设置SIM卡PIN码

    [手机上了锁,为啥还丢钱?专家支招:设置SIM卡PIN码]智能手机一旦丢失,不仅会带来诸多不便,甚至还会造成个人隐私泄露及财产损失. 然而很多人认为,自己已经设置了手机屏锁.支付密码.指纹锁等防御措施 ...

  2. HTTP协议相关原理

    HTTP 的全称是 Hyper Text Transfer Protocol,中文名叫做超文本传输协议 HTTP协议是用于从网络传输超文本数据到本地浏览器的传送协议,它能保证传送高效而准确地传送超文本 ...

  3. exgcd证明和最基础应用

    如何求解这个方程:\(ax + by = gcd (a, b)\)? \(∵gcd(a, b) = gcd (b, a \% b)\) \(∴\)易证 $ gcd(a, b)$ 总是可以化为 \(gc ...

  4. lucene的普通搜索(二)

    首先得到索引: package com.wp.util; import java.io.File; import java.io.FileReader; import java.nio.file.Pa ...

  5. Hibernate的入门(概念1):

    什么是持久化类? 持久化类的编写规则? 区分自然主键和代理主键? 主键生成策略?

  6. 深入浅出 JavaWeb:Servlet必会必知

    一.Web服务器 从事web开发的人,会很清楚一个东西叫HTTP服务器,比如JEE开发—Tomcat,Jetty,.NET开发—ISS等.HTTP服务器是使用 HTTP(超文本传输协议) 与客户机浏览 ...

  7. python 生成器和各种推导式

    ##################################总结############################### 什么是迭代器? 可迭代对象通过__iter__()可以转换成迭代 ...

  8. 混合app开发--js和webview之间的交互总结

    使用场景:原生APP内嵌套H5页面,app使用的是webview框架进行嵌套 这样就存在两种情况 1.原生app调用H5的方法 2.H5调用app的方法 分别讲解下,其实app与H5之间的交互式非常简 ...

  9. API(Scanner、Random、ArrayList、String、Arrays、Math)

    Scanner import java.util.Scanner; /* public int nextInt(): to get a integer from keyboard public Str ...

  10. Slider绑定事件,初始化NullPointerException错误

    最近刚刚接触Silverlight,随便在网上找了一个入门的博文http://www.cnblogs.com/Terrylee/archive/2008/03/07/Silverlight2-step ...