linux mysql5.5升级至mysql5.7的步骤与踩到的坑(升级数据库)

您所在的位置:网站首页 热分布测试 linux mysql5.5升级至mysql5.7的步骤与踩到的坑(升级数据库)

linux mysql5.5升级至mysql5.7的步骤与踩到的坑(升级数据库)

#linux mysql5.5升级至mysql5.7的步骤与踩到的坑(升级数据库)| 来源: 网络整理| 查看: 265

目录linux mysql5.5升级至mysql5.71.下载mysql5.7.322. 进入旧的mysql的bin目录下导出mysql的数据3. 进入新的mysql根目录下创建存放数据的data目录4. 对于刚解压的新数据库,首先执行初始化命令5. 设置跳过密码登录6. 启动服务7. 设置密码8. 停止服务9. 启动服务10. 新命令行登录11. 设置其他ip可以连接mysql12. 导入历史数据13. 执行更新MySQL从5.5升级到5.71.升级方式2.环境介绍3.升级思路4.实在演练4.1.登陆到mysql-proxy中将其中一台从库从集群中踢出4.2.替换mysql的安装目录4.3.启动mysql服务4.4.升级系统表数据字典信息,命令如下:4.5.升级完以后重启一下mysql4.6.重新做一下主从配置4.7加入到读写分离的集群中Mysql5.5升级到5.7的过程已经踩到的坑1、卸载数据库2、安装新数据库3、配置

linux mysql5.5升级至mysql5.7

下面先分享一个简单的升级mysql的步骤,后面本站小编为大家整理了多个补充,大家可以参考一下。

1.下载mysql5.7.32

官方下载地址 https://dev.mysql.com/downloads/mysql/

解压

tar xvf mysql.tar.gz mysql/

2. 进入旧的mysql的bin目录下导出mysql的数据

./mysql -uroot -pxxxx -h127.0.0.1 -P3306 remove backend 4

4.2.替换mysql的安装目录

到mysql的官网下载mysql5.7版本mysql-5.7.23-linux-glibc2.12-x86_64.tar.gz

解压mysql5.7

tar -zxf mysql-5.7.23-linux-glibc2.12-x86_64.tar.gz -C /usr/local/

如果你之前的mysql目录是链接的方式创建的话,那么只需要取消链接,从新做一下链接就可以了

cd /usr/local/

unlink mysql

ln -s mysql-5.7.23-linux-glibc2.12-x86_64 mysql

如果你之前的mysql目录不是链接的方式,那么重新命名一下,再链接一个mysql目录就可以了

cd /usr/local/

mv mysql mysql5.5

ln -s mysql-5.7.23-linux-glibc2.12-x86_64 mysql(建议尽可能的使用这种方式,比较方便升级)

4.3.启动mysql服务

mysql5.7以后是不需要进行数据库初始化的,也就是不用去执行mysql_install_db这个命令

/usr/local/mysql/bin/mysqld_safe --datadir=/data/mysql --basedir=/usr/local/mysql --user=mysql --skip-grant-tables --skip-networking &

ps -ef |grep mysql

如果有出息错误的话查看日志信息

4.4.升级系统表数据字典信息,命令如下:

/usr/loca/mysql/bin/mysql_upgrade

输出的结果:

可能会有一些error提示"ALTER TABLE ** FROCE",这些错误不用担心mysql在后面会自动修复repair的时间可能会有点长,要看你的数据库情况,我这次升级花了两个多小时

最后如果输出Upgrade process completed successfully那么就表示升级成功了。

4.5.升级完以后重启一下mysql

/usr/local/mysql/bin/mysqld_safe --datadir=/data/mysql --basedir=/usr/local/mysql --user=mysql &

查看一下是否升级完了,如果升级成功的话输出如下

This installation of MySQL is already upgraded to 5.7.23, use --force if you still need to run mysql_upgrade

4.6.重新做一下主从配置

重做一下主从配置

mysql> change master to master master_host="172.16.100.1",master_user="***",master_passowrd="***",master_log_file=" mysql-bin.000004", master_log_pos=1083;

mysql> start slave;

mysql> show slave status\G;

如果两个yes就说明正常了

4.7加入到读写分离的集群中

到mysql-proxy设备上面

mysql -uuser -ppwd -h127.0.0.1 -P234

mysql> ADD SLAVE 172.16.100.4

mysql> select * from backends;

如果state的状态是up的就说明加入集群成功了。

后记:

我第一次升级数据库,不知道整体思路对不对,先在测试环境上面做的测试,然后又测了几天没有问题了才在线上做的升级。仅供参考。

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

故事是这样子的,我们公司有几台老的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 directoryAdditionally, an exception has occurred while trying to report this error: Zend_ExceptionNo 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数据库中的用户都还在之前的数据库也没有受到影响

至此升级完成

到此这篇关于linux mysql5.5升级至mysql5.7的详细步骤的文章就介绍到这了,更多相关mysql5.5升级至5.7内容请搜索本站以前的文章或继续浏览下面的相关文章希望大家以后多多支持本站!

美国快速服务器

版权声明:本站文章来源标注为YINGSOO的内容版权均为本站所有,欢迎引用、转载,请保持原文完整并注明来源及原文链接。禁止复制或仿造本网站,禁止在非www.yingsoo.com所属的服务器上建立镜像,否则将依法追究法律责任。本站部分内容来源于网友推荐、互联网收集整理而来,仅供学习参考,不代表本站立场,如有内容涉嫌侵权,请联系alex-e#qq.com处理。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3