mysql 官方源从8.0.3直接yum升级到8.0.4后无法启动

服务器环境:centos7.4.14

问题:mysql无法正常启动

查看日志

2018-02-23T02:10:08.371209Z 0 [System] [MY-010116] /usr/sbin/mysqld (mysqld 8.0.4-rc-log) starting as process 27702 ...
2018-02-23T02:10:08.737713Z 1 [ERROR] [MY-011096] No data dictionary version number found.
2018-02-23T02:10:08.737989Z 0 [ERROR] [MY-010020] Data Dictionary initialization failed.
2018-02-23T02:10:08.738038Z 0 [ERROR] [MY-010119] Aborting

后来发现,升级后默认启用了caching_sha2_password身份认证机制,以前的数据是不能直接运行的。

只能先恢复原版本,将数据从原版本导出,重新导入使用,或再升级导入。

一、卸载8.0.4

备份数据

mv /var/lib/{mysql,mysql.bak}
chown -R mysql:mysql /var/lib/mysql.bak
chmod 755 -R  /var/lib/mysql.bak

直接yum卸载

rpm -qa|grep ‘^mysql‘

然后将查询出的8.0.4的包全部yum卸载

二、安装8.0.3

从官方下载 8.0.3

https://downloads.mysql.com/archives/community/

下载打包版mysql-8.0.3-0.1.rc.el7.x86_64.rpm-bundle.tar

解压

tar -xvf mysql-8.0.3-0.1.rc.el7.x86_64.rpm-bundle.tar

然后依次安装common、libs、client、server

rpm -ivh mysql-community-common-8.0.3-0.1.rc.el7.x86_64.rpm
rpm -ivh mysql-community-libs-8.0.3-0.1.rc.el7.x86_64.rpm
rpm -ivh mysql-community-client-8.0.3-0.1.rc.el7.x86_64.rpm
rpm -ivh mysql-community-server-8.0.3-0.1.rc.el7.x86_64.rpm

启动mysql

systemctl start msyqld.service

此时/var/lib/重新生成了一个新的mysql文件夹

三、数据导出

修改/etc/my.cnf指向旧数据

[mysqld]
innodb_force_recovery = 6
datadir=/var/lib/mysql.bak

Forcing InnoDB Recovery提供了6个等级的修复模式
innodb_force_recovery 参考: http://blog.csdn.net/weitao_11/article/details/55050200

全库导出:
mysqldump -uroot -p --all-databases > /home/sqlfile.sql

四、数据恢复

修改/etc/my.cnf数据路径,去掉修复模式,修复模式下不可写

[mysqld]
datadir=/var/lib/mysql

查看临时密码

[[email protected]]# cat /var/log/mysqld.log|grep password
2018-02-23T08:06:36.785974Z 5 [Note] A temporary password is generated for [email protected]: Leyk2qO_75ER

用临时密码登录mysql,修改密码

放弃升级,直接导入数据

mysql -uroot -p

mysql>GRANT ALL PRIVILEGES ON *.* TO ‘root‘@‘localhost‘ IDENTIFIED BY ‘[email protected]‘ WITH GRANT OPTION;
mysql>flush privileges;
mysql>source /home/sqlfile.sql;

重启后,一切正常。升级前一定要备份,一定要经常备份。

原文地址:http://blog.51cto.com/2884868/2072436

时间: 2024-11-08 17:13:43

mysql 官方源从8.0.3直接yum升级到8.0.4后无法启动的相关文章

gradle2.0笔记——让项目升级到gradle2.0

昨晚看到QQ群消息说gradle2.0发布了,今天去看了一下,确实是昨天发布的,为rc版本:Gradle 2.0-rc-2.于是决定试一下. gradle可以在官网上下载,地址如下:http://www.gradle.org/release-candidate.不过由于我许多项目因为兼容性问题目前暂时用不了gradle2.0,所以现在只能对我个别私人项目使用.如果你想让所有项目都用gradle2.0的话,可以下载gradle2.0然后解压,修改对应的环境变量指向到gradle2.0的目录.然后项

mysql官方源安装的一些问题

今天测试Linux 各个软件源 ,发现mysql 配置官方源之后,yum install -y mysql   安装了 mysql lastst 最新版,  安装完之后,奇葩的是没有提示输入密码, 所以 mysql 可以进入  提示输入密码,没有密码,  再经过几个折腾,包括什么跳过密码验证等等方法试过之后还是不行,发现直接查日志最为方便, 翻遍各种配置文件,改来该去 /etc/my.cnf mysql主配置文件 // 在这个配置文件结尾加上 skip-grant-tables 可以跳过密码验证

利用MySQL官方源安装5.6版程序,以及降级安装后无法启动的问题

前两天安装MySQL,用的是官方的yum源安装,安装好后发现 5.7版本内存占用还蛮高的,默认5.6版安装完成后启动占用内存大概400M+ ,5.7版本默认安装完成后内存占用竟然占到800M+  简直翻了一倍. 可能5.7上有很多新功能和新特性,但是现阶段我觉得我还远用不到,那么就降级安装5.6版本的吧. 由于系统上已经有了官方 yum源的配置,那么就通过yum来安装5.6版本的MySQL吧. 这是官方mysql源的配置信息,可见已经有了5.5/5.6/5.7版本的源. 因为默认使用yum安装m

PInvoke在 2.0 3.0的时候正常 升级到4.0后出错。

方法1: 设置 CallingConvention = System.Runtime.InteropServices.CallingConvention.Cdecl,但是我设置了也是出错.换一个convention没出错.但是调用不正常. 方法2: 大概意思是P/Invoke StackImblance这个异常,本身来说可以忽略掉. 在.net 2的项目环境下,默认是关掉这个异常检查的.在.net 4下面,默认是开启这个检查的. 要解决这个问题,可以在ctrl+alt+e的处理异常类型类型设定里

基于GTID的MySQL多源复制配置

多源复制的意义 1.可以在一个从库上对多个服务器的数据库进行汇总,或者对一个数据库的分库分表进行汇总. 2.集约使用从库服务器的硬件资源,毕竟弱一个数据库业务量较小确占用整个服务器资源是不经济的. 3.更方便的对个业务库进行数据备份,优化数据库备份脚本编写逻辑 拓补图 实施步骤 1.备份主库上的数据,考虑到gtid的问题建议只采用mysqldump程序进行备份 centos:#mysqldump --login-path=3306 \ #mysql官方工具都支持login-path快速登录   

mysql多源复制详解

大家应该知道,mysql比起其他数据库,最大的特色是就是主从复制,不过5.7之前的版本最多就只支持一主多从的复制方式,对于一些统计类的需求,就需要跨库,这是比较麻烦的事情,以往只能交由数据库中间件(mycat等)去做这种事情,还有备份操作,也只能一个个库的用脚本去轮询或并发备份,不可谓不费时费力.然后,多源复制的概念出来了. 多源复制的概念最早是mariadb社区提出的,后来mysql官方积极引入到5.7的版本中来(5.6最新版也是没有这个功能的),percona就不说了,也是随后推出.这个功能

WangSql 3.0源码共享(WangSql 1.0重大升级到3.0)

WangSql 1.0博文阅读: http://www.cnblogs.com/deeround/p/6204610.html 基于1.0做了以下重大改动: 1.多数据实现方式调整 2.使用EmitMapper代替反射实现DbDataReader转实体 3.源码在文章最后提供下载地址 核心功能介绍 多数据支持,采用配置文件形式实现多种数据实现,只需要指定数据库驱动即可实现所支持所有数据库任意切换. SQL自行管理,大大提高SQL可控性以及SQL性能优化. 高效实体转换,集成EmitMapper来

如何从MYSQL官方YUM仓库安装MYSQL5.x 原理一样只要获取对的仓库依赖安装对的仓库依赖就ok了,我就是用这种安装的5.7

如何从MYSQL官方YUM仓库安装MYSQL5.6 2013年10月,MySQL开发团队正式宣布支持Yum仓库,这就意味着我们现在可以从这个Yum库中获得最新和最优版的MySQL安装包.本文将在一台全新安装的CentOS6上安装MySQL5.6,如果你不熟悉MySQL5.6的新特性,我建议从MySQL 5.6的新特性开始,其中有很多非常有用的特性. 首先我们需要从MySQL开发者网站下载Yum仓库文件,导入Yum库后,一个简单的yumupdate命令将确保你运行在MySQL5.6的最新发布版上,

如何从MySQL官方Yum仓库安装MySQL5.6

2013年10月,MySQL开发团队正式宣布支持Yum仓库,这就意味着我们现在可以从这个Yum库中获得最新和最优版的MySQL安装包.本文将在一台全新安装的CentOS6上安装MySQL5.6,如果你不熟悉MySQL5.6的新特性,我建议从MySQL 5.6的新特性开始,其中有很多非常有用的特性. 首先我们需要从MySQL开发者网站下载Yum仓库文件,导入Yum库后,一个简单的yumupdate命令将确保你运行在MySQL5.6的最新发布版上,包括一些安全特性的更新.Yum同时也将确保导入相关依