返回顶部
首页 > 资讯 > 数据库 >MySQL8.0升级的踩坑历险记
  • 327
分享到

MySQL8.0升级的踩坑历险记

2024-04-02 19:04:59 327人浏览 八月长安
摘要

目录前言1.先彻底卸载现有版本Mysql。2.下载deb并按照mysql8.x。3.创建用户和配置权限。总结前言 最近忙于Fighting的项目,所以笔耕有些松懈,实为不该。 刚好遇

前言

最近忙于Fighting的项目,所以笔耕有些松懈,实为不该。

刚好遇到需要从Mysql5.7.33升级到MySQL8.0.x的需求,于是记录一下整个升级过程,踩坑而过。

背景梗概:本地Docker容器中使用的MySQL是5.7.33(镜像系统用的是ubuntu16.04),而新项目在线上使用了MySQL8.0。从线上导出的sql文件(表结构+数据)中有一种低版本MySQL不会用到的字符编码,一导入就报错,遇到的字符集报错如下所示:


 - Unknown collation: 'utf8mb4_0900_ai_ci'

一顿搜索之后,我也冷静了下来,有两种思路,一种是被我称为掩耳盗铃式解决方法,一种是根治的办法。

掩耳盗铃,顾名思义,不解决本质问题,而是通过批量替换字符集的方式解决报错,也就是把文件中所有的utf8mb4_0900_ai_ci 替换为:utf8_general_ci。

第二种就是保持和线上的MySQL版本一致,这样就能支持该字符集。

于是我采用第二种方法,升级我的docker容器中的MySQL,顺便也可以打包一个新的镜像。

升级的过程也有点坎坷,但逻辑是清晰地。

1.先彻底卸载现有版本MySQL。

可以使用如下命令:


#删除mysql的数据文件
sudo rm -R /var/lib/mysql/
#删除mysql的配置文件

sudo rm -R /etc/mysql/

#自动卸载mysql(包括server和client)
sudo apt-get autoremove mysql* --purge
sudo apt-get remove apparmor

记得一定要删除配置文件,因为有可能不兼容。

2.下载deb并按照MySQL8.x。

可以去官网下载,官网地址为https://dev.mysql.com/repo/apt

我们选择最新的deb下载,网址为:
Https://dev.mysql.com/get/mysql-apt-config_0.8.20-1_all.deb。在命令后使用wget命令进行下载,如下:


wget https://dev.mysql.com/get/mysql-apt-config_0.8.20-1_all.deb


下载完成之后使用dpkg命令并更新apt源,然后就可以进行安装了,完整命令如下所示:


dpkg -i mysql-apt-config_0.8.20-1_all.deb
apt-get update
apt-get install -y mysql-server

在最后一个命令执行过程中,它会让你输入root密码和一些基本配置,然后就可以完成安装了。

因为是在ubuntu里面安装的MySQL,所以启动方式为:


service mysql start

你可以使用命令查看进程运行情况,正常的时候类似如需输出:

/usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib/mysql/plugin --log-error=/var/log/mysql/error.log --pid-file=/var/run/mysqld/mysqld.pid --Socket=/var/run/mysqld/mysqld.sock

3.创建用户和配置权限。

MySQL8.0.x实际使用的过程中发现用户授权和之前版本有点不同,需要分三步:

  1. 创建用户。
  2. 分配权限。
  3. 刷新权限。

具体的sql语句如下,顺序也是严格的:


create user 'freePHP'@'%' identified by '176serTTc8Cg';

grant all privileges on dev_database.* to 'freephp'@'%' with grant option;

flush privileges;

上面的sql解释一下,第一句是创建一个名为freephp的用户,密码为176serTTc8Cg,%代表可以任意主机进行连接。

第二句的意思是把dev_database的所有权限赋予用户freephp。

第三句就是立即刷新权限,让新创建的权限生效。

自此历险记大功告成,MySQL8.0的新特性还需要探索,下次再聊。

总结

到此这篇关于MySQL8.0升级踩坑的文章就介绍到这了,更多相关MySQL8.0升级踩坑内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

您可能感兴趣的文档:

--结束END--

本文标题: MySQL8.0升级的踩坑历险记

本文链接: https://lsjlt.com/news/155723.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • MySQL8.0升级的踩坑历险记
    目录前言1.先彻底卸载现有版本MySQL。2.下载deb并按照MySQL8.x。3.创建用户和配置权限。总结前言 最近忙于Fighting的项目,所以笔耕有些松懈,实为不该。 刚好遇...
    99+
    2024-04-02
  • 【Python】记录从3.9升级到3.11踩的坑
    写在前面的话:如果想体验python3.11,不推荐生产环境升级,可以现在测试环境试试看 环境变化 原始环境 Python3.9,有挺多安装的第三方库,有自己写的类和方法,程序一切运行正常 升级...
    99+
    2023-09-21
    pandas python3.11 python ddddocr connectorx
  • Android Studio Flamingo (火烈鸟) 升级踩坑记录
    由于想要验证Compose最新的debug特性,而我目前使用的版本(Dolphin 小海豚)不支持,查看官网说明需要最新版本,所以不得已进行了一下Android Studio版本升级,过程中遇到一些问题,本文仅做记录。(真是不想升级,一升级...
    99+
    2023-08-18
    android studio android gradle AGP 8.0 Flamingo
  • android 33 适配升级踩坑
    工程添加参考官网:设置 Android 13 SDK  |  Android 开发者  |  Android Developers   安装 SDK 在 Android Studio 中,您可以按如下方式安装 Android 13 SDK:...
    99+
    2023-09-04
    android android studio ide
  • vue遍历中存在el-form之踩坑记录
    目录vue遍历存在el-form之踩坑初版完善版抽组件版vue中el-form循环绑定vue遍历存在el-form之踩坑 初版 <template> <div...
    99+
    2022-11-13
    vue遍历 vue中el-form vue遍历踩坑
  • vue2.xbackground:url()的踩坑记录
    目录background:url()的踩坑记录backgroundImage路径问题处理方法background:url()的踩坑记录 开发模式下vue中background: ur...
    99+
    2024-04-02
  • Golang的strings.Split()踩坑记录
    目录背景场景前置排查验证打印底层信息追源码类似情况总结背景 工作中,当我们需要对字符串按照某个字符串切分成字符串数组数时,常用到strings.Split() 最近在使用过程中踩到了...
    99+
    2024-04-02
  • 关于TypeScript的踩坑记录
    目录用字符串做下标报错函数内使用this报错找不到模块XXX引入模块提示找不到声明文件(接上一个问题)JSON直接解析localStorage值报错初始加载的组件未命名,浏览器打开页...
    99+
    2024-04-02
  • centos7安装mysql5.7的踩坑记录
    目录下载安装mysql下载rpm安装包安装查看安装情况安装server这里发现这个问题:备注:总结今天使用centos7进行mysql5.7的安装,出现挫折,记录如下: 下载安装my...
    99+
    2024-04-02
  • RxJava 1升级到RxJava 2过程中踩过的一些“坑”
    RxJava2介绍RxJava2 发布已经有一段时间了,是对 RxJava 的一次重大的升级,由于我的一个库cv4j使用了 RxJava2 来尝鲜,但是 RxJava2 跟 RxJava1 是不能同时存在于一个项目中的,逼不得已我得把自己所...
    99+
    2023-05-31
    rxjava1 升级 rxjava2
  • 记录nacos一次踩坑经历,报错 403 authorization failed! unknown user
    记录nacos一次踩坑经历,报错 403 authorization failed! 权限未开启正常读取 本人在学习springcloud alibaba时配置nacos的时候,如果未开启权限认证是正常的 nacos server中的配置:...
    99+
    2023-08-23
    java spring boot spring cloud
  • vue3中vuex与pinia的踩坑笔记记录
    目录介绍安装使用简单对比写法差异与共同点Vuex 和 Pinia 的优缺点何时使用Pinia,何时使用Vuex总结介绍 Pinia 是 Vue.js 的轻量级状态管理库,最近很受欢迎...
    99+
    2024-04-02
  • vue css 相对路径导入问题级踩坑记录
    目录前提先附上成功的配置1.build/utils.js2.build/webpack.base.conf.js遇到的坑1.错误写法2.正确的写法3.如果想在“style...
    99+
    2024-04-02
  • 记一次使用nacos2踩到的坑
    前言 本文素材来源朋友学习nacos2.1.1踩到的坑。直接上正菜 坑点一:出现端口被占用 因为是学习使用,朋友就在物理机搭建了搭建了nacos伪集群,即ip都一样,端口分别为8848,8847,88...
    99+
    2023-09-17
    nginx 服务器 运维 springcloud
  • Flutter中关于angle的踩坑记录
    这个问题是我最近做业务开发和业余开发都遇到的,这里的 angle 指的是旋转弧度。不是旋转角度。 先看一下我使用 angle 的场景吧: 图一中使用了 canvas.drawA...
    99+
    2024-04-02
  • 一次python-flask蓝图的踩坑记录
    目录一.简介二.特色三.flask规模化四. flask Blueprint总结一.简介 Flask是一个使用Python编写的轻量级Web应用框架。基于Werkzeug WSGI工具箱和Jinja2 模板引擎。F...
    99+
    2022-06-02
    python的flask python安装flask python flask蓝图
  • springboot整合log4j的踩坑实战记录
    目录1、依赖添加 1.1、添加依赖 1.2、剔除依赖2、配置日志 2.1、日志打印记录 2.2、指定配置文件补充:log4j调优和注意事项总结...
    99+
    2024-04-02
  • JavaScript深拷贝的一些踩坑记录
    前言 之前去一家公司面试的时候,面试官问了我一个问题,说:"如何才能深拷贝一个对象"。当时我心里有些窃喜,这么简单的问题还用想吗?于是脱口而出:"平时常用的有两种办法,第一种用JSO...
    99+
    2024-04-02
  • vue3搭配pinia的踩坑实战记录
    目录前言An Object could not be cloned?VUE 3的toRawPINIA与VUE 3可以混合搭配?同样的操作在VUE 3下的结果最后的解决方式总结前言 最...
    99+
    2024-04-02
  • vue3使用socket.io的踩坑实战记录
    目录问题一:vue-socket.io与socket.io的区别一、socket.io二、vue-socket.io问题二:受同源策略的影响,怎样跨域总结我们的项目出现聊天室、客服等...
    99+
    2023-03-19
    vue3 socket.io vue3使用socket.io
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作