背景:

  由于之前一个项目中用的数据库版本是免安装的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. 用python画三角函数

    Pyplot http://www.labri.fr/perso/nrougier/teaching/matplotlib/ pyplot提供了一个方便的matplotlib基于对象库的借口,是模仿了 ...

  2. 如何修改const常量值

    总结:这个跟计算机语言类别和编译器有关,本文是在linux环境下说明的. 分两种情况: 1. C语言: 2. C++语言: /*! * \Description: * \author scictor ...

  3. hibernate关联关系映射之配置文件

    词汇解释 关系:事物之间相互作用.相互联系的状态.范围最大. 联系:在关系数据库中表示实体与实体之间的联系,1:1,1:n,m:n. 关联:表示对象之间的关系,既有数量性,又有方向性:动词:将对象之间 ...

  4. Chrome DevTools: Color tricks in the Elements Panel

    shift + click to change the color format Tip one The Colour Platters are customeised for you .they s ...

  5. string类型用法大全

    使用标准C++中string类,要包含头文件< string > string类的构造函数 //string(const char *s); 用字符串s初始化 string s1(&quo ...

  6. ETL脚本的版本管理方法和 SourceTree 使用

    =============================使用git管理Kettle 作业的一个注意=============================之前 ETL 作业是用 svn 管理的, ...

  7. HanLP用户自定义词典源码分析

    HanLP用户自定义词典源码分析 1. 官方文档及参考链接 关于词典问题Issue,首先参考:FAQ 自定义词典其实是基于规则的分词,它的用法参考这个issue 如果有些数量词.字母词需要分词,可参考 ...

  8. springboot13 发布和监听事件

    spring中的事件驱动模型Event(也叫发布订阅模式),是观察者模式的一个典型的应用 好处:业务解耦,在不影响原来业务逻辑的情况下,加入其它业务 场景: app上线后已实现用户注册功能,现需要在用 ...

  9. Redis是可以安装成windows服务-开机自启

    其实Redis是可以安装成windows服务的,开机自启动,命令如下 redis-server --service-install redis.windows.conf 安装完之后,就可看到Redis ...

  10. Docker 容器CPU设置

    CPU使用率其实就是你运行的程序占用的CPU资源,表示你的机器在某个时间点的运行程序的情况.使用率越高,说明你的机器在这个时间上运行了很多程序,反之较少.CPU使用率的高低与你的CPU强弱有直接关系. ...