Mysql5.5升级到5.7的过程已经踩到的坑

Mysql5.5升级到5.7的过程已经踩到的坑

https://blog.csdn.net/u014534986/article/details/79699750

故事是这样子的,我们公司有几台老的mysql版本是5.5的,最近项目做了一些升级增加了几个字段,用spring-data-jpa自动刷新表结构的时候报错了,原因是mysql5.5的版本不支持一张表里面有两个以上的 current_timestamp 作为default value。所以就要考虑升级下数据库

先到服务器上面看了下版本

Mysql5.5升级到5.7的过程已经踩到的坑

再看了下源

Mysql5.5升级到5.7的过程已经踩到的坑

哦,顺带提一句,我们公司在用的aws 的 ec2 ,所以都是amz的源

试了下 yum update mysql-server 然后并没什么卵用,所以继续往下搞。

网上看了好多都说是先把旧版本的数据库卸载了再用装新版本的数据库,那我的里面的数据咋办,为了保险起见,我先办数据库做了个备份,一个库一个库的备份,我看mysql库里面也配了好多用户和权限,就顺便也把mysql备份了,然后开搞。

1、卸载数据库

[javascript]
view plain
copy

  1. yum remove mysql-server  

但是我们这边装的好像不太一样,我就把刚才yum查到的几个都卸载了。

卸载前记得把mysql服务关掉,要不然装新版本之后用mysql –version 查看是5.7 mysql 登录进去还是5.5然后重启服务就各种问题。因为有些文件没被删掉,导致新装的数据库好奇怪的样子。。。

2、安装新数据库

Mysql5.5升级到5.7的过程已经踩到的坑

[javascript]
view plain
copy

  1. yum search mysql57  

先看看有什么版本可以选,这个没啥说的直接

[javascript]
view plain
copy

  1. yum install msyql57-server.x86_64  

安装下来就ok,来看看都装了些啥东西

Mysql5.5升级到5.7的过程已经踩到的坑

很奇怪一点就是mysql-config依赖竟然还是5.5的,不过用起来没发现啥问题

3、配置

安装好了之后修改以下my.cnf

我的服务器上面是在/etc/my.cnf 不知道其它的镜像有没有变化

在配置的时候我突然想到数据存储的空间是还在的啊,配过去看看能用不

于是就在my.cnf配了这一行(5.5的好多配置都弃用了,之前的my.cnf里面的都要删一删要不然启动时会报错)

Mysql5.5升级到5.7的过程已经踩到的坑

配置之后果断启动服务

[javascript]
view plain
copy

  1. service mysqld start  

果然报错了

看了下启动日志

  1. [ERROR] Fatal error: mysql.user table is damaged. Please run mysql_upgrade.  
  1. ERROR: Zend_Db_Adapter_Exception: SQLSTATE[HY000] [2002] No such file or directory  
  2. Additionally, an exception has occurred while trying to report this error: Zend_Exception  
  3. No entry is registered for key ‘translate’ (Abstract.php:144)  

卧槽,这咋办google一波 搜到了这篇文章https://support.plesk.com/hc/en-us/articles/115001659169-MySQL-fails-to-start-mysql-user-table-is-damaged

    具体解决方法如下

    a. 登录到那台服务器主机上面

    b.  Add skip-grant-tables in /etc/my.cnf file under [mysqld] section 意思就是开启安全模式(不验证密码什么的)

    c.  service mysqld start 

   d.  
mysql_upgrade

   e.  service mysqld restart 

    我执行了一下mysql_upgrade 

Mysql5.5升级到5.7的过程已经踩到的坑

查了查官方文档,大体意思就是升级之后好多东西不怎么兼容,官方提供这个脚本来修复之前的工作空间

果然是无缝升级mysql数据库中的用户都还在之前的数据库也没有受到影响

至此升级完成

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/113222.html原文链接:https://javaforall.net

(0)
上一篇 2021年10月22日 上午11:00
下一篇 2021年10月22日 下午12:00


相关推荐

  • win10双显卡怎么切换amd和英特尔_amd双显卡怎么设置_win8切换amd双显卡的方法步骤…

    win10双显卡怎么切换amd和英特尔_amd双显卡怎么设置_win8切换amd双显卡的方法步骤…2020 01 0215 49 45 随着操作系统更新换代的快速发展 很多 win8 系统开始支持安装双显卡 但是有些软件或者游戏需要高性能的显卡 这个时候双显卡就需要进行切换 那么 w8 双显卡怎么切换 下面小编为大家带来 w 2015 10 2714 06 29 根据部分用户的反映 在 AMD 和 Intel 双显卡的电脑中 开机之后会出现黑屏 然后停顿 1 分钟左右 才能进入电脑系统 这种情况可能是由于双显卡

    2026年3月18日
    2
  • 医学图像处理最全综述「建议收藏」

    目录0、引言1、病变检测2、图像分割基于深度学习的医学图像分割与检测3、图像配准图像配准的定义4、图像融合5、预测与挑战6、结论参考文献0、引言医学图像处理的对象是各种不同成像机理的医学影像,临床广泛使用的医学成像种类主要有X-射线成像(X-CT)、核磁共振成像(MRI)、核医学成像(NMI)、超声波成像(UI)四类。在目前的影像医疗诊断中,主要是通过观察一组二维切片图象去发现病变体,这往往需要借助医生的经验来判定。利用计算机图像处理技术对二维切片图象进行.

    2022年4月7日
    202
  • 批量交易 nonce重复

    批量交易 nonce重复以太坊所有的交易需要对每次交易都按顺序记录 nonce 值就是这个顺序 nonce 是交易原始地址的属性 它不存储在以太坊区块链上 而是通过计算从一个地址发送的交易数量来计 每发送一笔交易 nonce 自动加 1 当我们批量发送交易的时候 会出现 replacementt 这个问题 原因是 nonce 重复解决方法 自己去维护一个 nonce1 首先先去查看一下当前的 nonceweb3 eth getTransacti addre

    2026年3月17日
    1
  • PROXY SERVER 代理服务器[通俗易懂]

    Proxy是什么呢,是代理。普通的因特网访问是一个典型的客户机与服务器结构:用户利用计算机上的客户端程序,如浏览器发出请求,远端WWW服务器程序响应请求并提供相应的数据。而Proxy处于客户机与服务器之间,对于服务器来说,Proxy是客户机,Proxy提出请求,服务器响应;对于客户机来说,Proxy是服务器,它接受客户机的请求,并将服务器上传来的数据转给客户机。它的作用很象现实生活中的代理服务商…

    2022年4月18日
    45
  • CentOS7开启防火墙及特定端口

    CentOS7开启防火墙及特定端口以前为了方便,把防火墙都关闭了,因为现在项目都比较重要,害怕受到攻击,所以为了安全性,现在需要将防火墙开启,接下来介绍一下步骤。1,首先查看防火墙状态:firewall-cmd–state下图所示为关闭防火墙,接下来需要开启2,开启防火墙,启动firewall:systemctlstartfirewalld.service设置开机自…

    2022年6月23日
    28
  • Android 检測网络是否连接[通俗易懂]

    Android 检測网络是否连接

    2022年1月21日
    48

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号