MySql数据库5.7升级到8.1遇到的问题与解决方案

这篇具有很好参考价值的文章主要介绍了MySql数据库5.7升级到8.1遇到的问题与解决方案。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、项目背景

Oracle MySql安全漏洞CVE-2023-22056等漏洞爆出来后,准备对系统的MYSQL数据库进行升级,由5.7升级到8.1,本文主要介绍下升级过程中的几个问题。

二、升级步骤

(一)备份数据库

通过navicat导出数据库的结构和数据,以便升级后恢复到新版本。

(二)安装MySql8.1.X版本

下载地址:MySQL :: Download MySQL Community Server

因为系统服务是通过wamp提供,主要计划是在原5.7的基础上添加MySQL8.1版本,这里就需要解决wamp多版本mysql问题。

这里我们下载MYSQL的压缩包版本:

Windows (x86, 64-bit), ZIP Archive 8.1.0 236.9M

Download

(mysql-8.1.0-winx64.zip)

(1)将下载的压缩包解压到wamp的安装路径下,即X:\XXX\wamp64\bin\mysql目录。原先已有5.7.X的目录,类似的创建一个8.1.X的目录,把压缩包解压到里面即可。

 (2)修改相关路径参数

把5.7.X目录下的my.ini和wampserver.conf 文件拷贝到mysql8.1.X目录中,并更改my.ini文件中的参数

basedir="X:/XXX/wamp64/bin/mysql/mysql8.0.11"

datadir="X:/XXX/wamp64/bin/mysql/mysql8.0.11/data"

lc-messages-dir="X:/XXX/wamp64/bin/mysql/mysql8.0.11/share"

(3)初始化mysql8.1.x

通过命令行cmd进入到mysql8.1.x下的bin目录,执行以下命令:

mysqld --initialize --console

在执行后的界面中找到:A temporary password is generated for root@localhost:XXXXXX

这是初始化mysql后,生成的密码,后面要使用它访问MySQL,这里要copy下来!!!!

(4)安装MYSQL服务

如果是wamp,需要在wamp的install service,然后启动

如果不是wamp,则直接在cmd中执行命令:mysqld -install,操作系统服务中会添加一个MySql的服务。启动即可。

(5)登录验证

如果是wamp,则在wamp中打开菜单Mysql console,使用(3)中生成的临时密码使用以下命令登录。

注意:第一次登录后,执行命令会报下面的错误:

RROR 2003 (HY000): Can't connect to MySQL server on 'localhost' (10061)

这是提醒你需要更改临时密码。操作如下:

mysql> alter user 'root'@'localhost' identified by 'XXXXXXXX';

还需要执行下面命令刷新权限:  

mysql> flush privileges;

更改后,使用命令:mysql> show databases;

如果看到结果,即标识成功。

(三)还原数据库

在新的MYSQL中添加数据库,并在新的数据下执行(一)中导出的sql。

如果数据库中由存储过程或者函数,在执行的时候可能会不成功,这时需要在my.ini中的[mysqld]添加:log_bin_trust_function_creators=1,重启服务后重新导入即可。

(四)系统连接数据库

在配置好用户、主机、数据库权限后,系统通过程序访问数据库。此时系统会出现如下问题:

1.字符集不适配问题

系统报错:SQLSTATE[HY000] [2054] Server sent charset unknown to the client. Please, report to the developers

原因:MySQL 8 默认字符集为utf8mb4,而系统使用的是utf8;

解决方案:需要在my.ini文件中的[mysqld]下加以下两行:

character-set-server = utf8mb4

collation-server = utf8mb4_unicode_ci

2.身份认证问题

系统报错:SQLSTATE[HY000] [2054] The server requested authentication method unknown to the client

原因:因为MySQL8中用户的认证类型(Authentication type)默认为cacheing sha2 password导致的错误,需要修改用户权限认证方式为mysql_native_password的认证方式。

解决方案:两步(1)在MYSQL console中执行:

mysql>alter user 'root'@'%' identified with mysql_native_password by 'XXXXXXXX';

mysql>flush privileges;

(2)在my.in文件中的[mysqld]下加上

default_authentication_plugin=mysql_native_password

 文章来源地址https://www.toymoban.com/news/detail-616645.html

到了这里,关于MySql数据库5.7升级到8.1遇到的问题与解决方案的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Unity连接数据库mysql全过程+可能遇到的问题与解决方案

    目录 一、具备条件 二、unity连接mysql 三、问题总结 1. Mysql安装完成         安装完成后需要查看mysql的版本,打开终端(管理者身份运行),输入以下语句登录mysql,查看MySQL版本; 可以看到我下载的版本是 5.7.38; 2. MySQL Connector/NET下载 目的:为了搭建unity连接mysql的环境

    2024年02月03日
    浏览(42)
  • MySQL 5.7详细下载安装配置以及C# MySQL数据库操作教程

    MySQL 5.7详细下载安装配置以及C# MySQL数据库操作教程 最近有个项目使用MySQL5.7,在安装MySQL的时候会遇到很多问题,博客上其实也有很多解决问题的办法,在这里我操作记录一下,方便后续使用时查看。 以下MySQL 5.7.43 详细下载安装配置教程。 访问官方网站:https://www.mysql.co

    2024年02月09日
    浏览(37)
  • Android Studio实现Mysql(5.7)数据库增删改查(上)——用户登录功能实现

    前言:如果android studio安装和第一次跑helloworld有什么问题可以参考:(34条消息) Android Studio踩的那些坑(gradle build、unable to find tasks to···等等)_TidesWise的博客-CSDN博客 目录 准备工作 查询学生数目demo:  增删改查完整案例 1、在Android Studio中新建项目My Application; 2、在Androi

    2024年02月10日
    浏览(28)
  • 第77讲:二进制方式搭建MySQL数据库5.7版本以及错误日志管理

    前面是使用的yum的方式安装的MySQL数据库,在企业生产环境中大多数都用二进制方式安装。 本次使用二进制方式搭建MySQL 5.7.36版本。 1.1.下载MySQL5.7版本的二进制文件 1.2.创建mysql用户管理MySQL服务

    2024年02月03日
    浏览(39)
  • jmeter遇到连接数据库的问题

    上货 1、下载驱动inceptor 5.1.2.jar包 2、在添加驱动那里导入 3、在JBC request中的写法 PS:没什么可说的

    2024年02月19日
    浏览(31)
  • 近日遇到数据库及其他问题

    使用 以下语句,在上亿数据的表中执行速度较慢 可使用下面两种方式 或者 在编译完class文件,替换war包里面对应class文件后,报Could not reload resource bundles java.lang.NoSuchFieldException: cacheList,找不到对应action,在网上查找资料,发现可能是JDK版本问题,原来使用JDK8 编译有问题,

    2024年02月01日
    浏览(35)
  • windows下升级mysql数据库版本(压缩包升级)

    由于需要修复漏洞不得不对数据库版本进行升级,看了好多教程以下是个人整理的一些记录 注:我这边是从5.7.32——5.7.39版本 1.升级前要先备份旧的数据 (1)先记录一下mysql的安装路径 //查看mysql安装路径 select @@basedir as basePath from dual; //查看mysql data数据存放路径 show global

    2024年02月12日
    浏览(31)
  • 使用达梦数据库遇到的异常问题

    dm.jdbc.driver.DMException: 数据转换丢失警告 我这里出现问题的SQL语句是: 原因 :是因为list集合中 rz 字段的数据超出的达梦库设置字段类型DEC(7,3)的长度。 dm.jdbc.driver.DMException: 数据未找到 在使用达梦数据库批量插入或更新数据时,给我报了一个从来没有遇到过的错误,当时我

    2024年02月13日
    浏览(29)
  • 8.1 Java与数据库连接_XML(❤)

    2024年01月21日
    浏览(26)
  • MYSQL连接报错:客户端不支持服务器请求的身份验证协议;考虑升级MYSQL客户端数据库

    在进行MYSQL数据库连接时,有时候可能会遇到如上所述的错误:“客户端不支持服务器请求的身份验证协议;考虑升级MYSQL客户端数据库”。这个错误通常发生在客户端使用的MYSQL版本与服务器所要求的身份验证协议不兼容的情况下。幸运的是,您可以通过升级MYSQL客户端来解

    2024年02月03日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包