Mysql5.5升级到5.7的过程已经踩到的坑
https://blog.csdn.net/u014534986/article/details/79699750
故事是这样子的,我们公司有几台老的mysql版本是5.5的,最近项目做了一些升级增加了几个字段,用spring-data-jpa自动刷新表结构的时候报错了,原因是mysql5.5的版本不支持一张表里面有两个以上的 current_timestamp 作为default value。所以就要考虑升级下数据库
先到服务器上面看了下版本
再看了下源
哦,顺带提一句,我们公司在用的aws 的 ec2 ,所以都是amz的源
试了下 yum update mysql-server 然后并没什么卵用,所以继续往下搞。
网上看了好多都说是先把旧版本的数据库卸载了再用装新版本的数据库,那我的里面的数据咋办,为了保险起见,我先办数据库做了个备份,一个库一个库的备份,我看mysql库里面也配了好多用户和权限,就顺便也把mysql备份了,然后开搞。
1、卸载数据库
- yum remove mysql-server
但是我们这边装的好像不太一样,我就把刚才yum查到的几个都卸载了。
卸载前记得把mysql服务关掉,要不然装新版本之后用mysql --version 查看是5.7 mysql 登录进去还是5.5然后重启服务就各种问题。因为有些文件没被删掉,导致新装的数据库好奇怪的样子。。。
2、安装新数据库
- yum search mysql57
先看看有什么版本可以选,这个没啥说的直接
- yum install msyql57-server.x86_64
安装下来就ok,来看看都装了些啥东西
很奇怪一点就是mysql-config依赖竟然还是5.5的,不过用起来没发现啥问题
3、配置
安装好了之后修改以下my.cnf
我的服务器上面是在/etc/my.cnf 不知道其它的镜像有没有变化
在配置的时候我突然想到数据存储的空间是还在的啊,配过去看看能用不
于是就在my.cnf配了这一行(5.5的好多配置都弃用了,之前的my.cnf里面的都要删一删要不然启动时会报错)
配置之后果断启动服务
- service mysqld start
果然报错了
看了下启动日志
- [ERROR] Fatal error: mysql.user table is damaged. Please run mysql_upgrade.
- ERROR: Zend_Db_Adapter_Exception: SQLSTATE[HY000] [2002] No such file or directory
- Additionally, an exception has occurred while trying to report this error: Zend_Exception
- 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
查了查官方文档,大体意思就是升级之后好多东西不怎么兼容,官方提供这个脚本来修复之前的工作空间
果然是无缝升级mysql数据库中的用户都还在之前的数据库也没有受到影响
至此升级完成
Mysql5.5升级到5.7的过程已经踩到的坑的更多相关文章
- apache httpd 从2.2升级到2.4的过程及中间遇到的坑
背景描述: 最近集团在做安全扫描,扫出了http的漏洞,一看是监控nagios涉及到的httpd,于是就考虑将httpd升级到最新的版本,在升级的过程中,真是遇到了很多的坑,弄了2天终于搞定了,现在梳 ...
- 使用ffmpeg视频编码过程中踩的一个坑
今天说说使用ffmpeg在写视频编码程序中踩的一个坑,这个坑让我花了好多时间,回头想想,非常多时候一旦思维定势真的挺难突破的.以下是不对的编码结果: ...
- Anaconda安装xgboost的过程和踩过的坑
win10下安装xgb,安装的过程波折起伏,花了5个小时,给后来人做参考喽 第一次尝试 利用以下两个软件 Git for Windows.MINGW进行安装. 安装可以参考:(https://blog ...
- 谈谈使用echarts过程中踩过的坑
小结: 1. 使用jquery获取json对象遇到的问题 由于自己对ajax用的还不熟练,之前都是拷贝别人的代码拿来用的,这次自己写的时候倒是碰到好多麻烦一一列举如下: 1.1 在$ 与ajax之间还 ...
- NetCore部署到Linux服务器+Supervisor的步骤及过程中踩过的坑
本文作备忘使用 服务器配置: 下面是所有操作的具体步骤: 1.安装nginx 参考 1.1 添加源:默认情况Centos7中没有Nginx源,最近Nginx官网提供了Centos的源地址. sud ...
- 【spring】使用spring过程中踩到的坑
这里简单记录一下,学习spring的时候碰过的异常: 异常:org.springframework.beans.factory.BeanDefinitionStoreException: Unexpe ...
- kafka 并发数配置过程中踩到的坑 InstanceAlreadyExistsException
] WARN org.apache.kafka.common.utils.AppInfoParser- Error registering AppInfo mbean javax.management ...
- spring-data-redis 使用过程中踩过的坑
spring-data-redis简介 Spring-data-redis是spring大家族的一部分,提供了在srping应用中通过简单的配置访问redis服务,对reids底层开发包(Jedis, ...
- 《Python3 网络爬虫开发实战》开发环境配置过程中踩过的坑
<Python3 网络爬虫开发实战>学习资料:https://www.cnblogs.com/waiwai14/p/11698175.html 如何从墙内下载Android Studio: ...
随机推荐
- 使用DIV+CSS布局网站的优点和缺陷
随着WEB2.0标准化设计理念的普及,国内很多大型门户网站已经纷纷采用DIV+CSS制作方法,从实际应用情况来看,此种方法绝对好于表格制作页面的方法. 如今大部分网站仍然采用表格嵌套内容的方式来制作网 ...
- Congratulation!顺利通过-2019年6月份的PMP考试
祝贺邮件 证书
- querySelector与getElementBy系列的区别
getElementBy系列 document.getElementsByTagName('tag'); document.getElementById('id'); document.getElem ...
- delete records in table A not in table B
转)A.B两表,找出ID字段中,存在A表,但是不存在B表的数据.A表总共13w数据,去重后大约3W条数据,B表有2W条数据,且B表的ID字段有索引. 方法一 使用 not in ,容易理解,效率低 ...
- JavaScript--封装好的运动函数+旋转木马例子
封装好的运动函数: 1.能控制目标元素的多种属性 2.能自动获取元素的样式表: 3.获取样式函数兼容 4.能对于元素的多属性进行动画(缓动动画)修改 5.能区分透明度等没单位的属性和px属性的变化 a ...
- Java8中的LocalDateTime工具类
网上搜索了半天都没有找到Java8的LocalDateTime的工具类,只好自己写了一个,常用功能基本都有.还在用Date的Java同道该换换了. 个人项目地址:https://github.com/ ...
- SDUT-3373_数据结构实验之查找一:二叉排序树
数据结构实验之查找一:二叉排序树 Time Limit: 400 ms Memory Limit: 65536 KiB Problem Description 对应给定的一个序列可以唯一确定一棵二叉排 ...
- Minimum Depth of Binary Tree最短深度
Given a binary tree, find its minimum depth. The minimum depth is the number of nodes along the shor ...
- 散列表(Hash Table)
散列表(hash table): 也称为哈希表. 根据wikipedia的定义:是根据关键字(Key value)而直接访问在内存存储位置的数据结构.也就是说,它通过把键值通过一个函数的计算,映射到表 ...
- 集合--Set&&HashSet和TreeSet
特点:元素无序,不可重复 1.添加元素 set.add("tanlei"); set.addAll(Arrays.asList(44,"磊","磊&q ...