在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
linux mysql5.5升级至mysql5.7下面先分享一个简单的升级mysql的步骤,后面极客世界小编为大家整理了多个补充,大家可以参考一下。 1.下载mysql5.7.32官方下载地址 https://dev.mysql.com/downloads/mysql/ 解压
2. 进入旧的mysql的bin目录下导出mysql的数据
3. 进入新的mysql根目录下创建存放数据的data目录
4. 对于刚解压的新数据库,首先执行初始化命令
PS: 以上升级是在Cent OS上的,但是在中标麒麟我升级的时候,发现不认识上面的语句,需要替换成下面这个初始化语句 ./mysqld --defaults-file=../my.cnf --basedir=../ --datadir=../data --user=root --initialize 5. 设置跳过密码登录在my.cnf 中的[mysqld]中添加skip-grant-tables 6. 启动服务
7. 设置密码在新的命令行窗口登录mysql
8. 停止服务注释掉配置文件中的skip-grant-tables 9. 启动服务
10. 新命令行登录
这个时候:不管运行任何命令,总是提示这个 You must reset your password using ALTER USER statement before executing this statement. SET PASSWORD = PASSWORD('xxxx'); 11. 设置其他ip可以连接mysql
12. 导入历史数据
13. 执行更新
14. 升级后可能出现查询语句出现报错的情况,可执行下面的语句
下面是其他网友的补充 MySQL从5.5升级到5.7最近有个任务将MySQL从5.5版本升级到5.7,没升级过数据库,只能摸索的前进。上网找了一堆资料。目测看只有两种升级方式 1.升级方式1.Logical Upgrade(逻辑升级):利用mysqldump来直接导出SQL文件,然后起一个新的MySQL5.7库,将导出的SQL文件导入到新库中,当然如果采用这种方式的话建议不要用mysqldump而使用mydumper.因为我们公司的数据量很大所以没有采用这个方法来处理。 2.In-Place Upgrade:这个升级方法简单快速,就是直接替换原来的MySQL的安装目录和/etc/my.cnf配置文件,利用mysql_upgrade脚本来完成系统表的升级。 2.环境介绍我们的mysql集群采用的是Atlas读写分离,mysql-proxy下有4台数据库服务器: master: 172.16.100.1 slave1:172.16.100.2 slave2:172.16.100.3 slave3:172.16.100.4 当前数据库版本:”5.5.21 配置文件:/etc/my.cnf 数据目录:/data/mysql 操作系统版本:CentOS6.9 3.升级思路因为是线上业务不能中断,所以决定先将其中一台slave踢出集群,并升级到mysql5.7,然后再讲mysql5.7这台设备加入到集群当中,等数据同步完了再做主备切换,再升级其他的slave节点。 4.实在演练4.1.登陆到mysql-proxy中将其中一台从库从集群中踢出
查看后端代理库
+-------------+-------------------+-------+------+ | backend_ndx | address | state | type | +-------------+-------------------+-------+------+ | 1 | 172.16.100.1:3306 | up | rw | | 2 | 172.16.100.2:3306 | up | ro | | 3 | 172.16.100.3:3306 | up | ro | | 4 | 172.16.100.4:3306 | up | ro | +-------------+-------------------+-------+------+ 5 rows in set (0.00 sec) 4.2.替换mysql的安装目录到mysql的官网下载mysql5.7版本mysql-5.7.23-linux-glibc2.12-x86_64.tar.gz 解压mysql5.7
如果你之前的mysql目录是链接的方式创建的话,那么只需要取消链接,从新做一下链接就可以了
如果你之前的mysql目录不是链接的方式,那么重新命名一下,再链接一个mysql目录就可以了
4.3.启动mysql服务mysql5.7以后是不需要进行数据库初始化的,也就是不用去执行mysql_install_db这个命令
如果有出息错误的话查看日志信息 4.4.升级系统表数据字典信息,命令如下:
输出的结果: 可能会有一些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.重新做一下主从配置重做一下主从配置
如果两个yes就说明正常了 4.7加入到读写分离的集群中到mysql-proxy设备上面
如果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查到的几个都卸载了。 卸载前记得把mysql服务关掉,要不然装新版本之后用mysql --version 查看是5.7 mysql 登录进去还是5.5然后重启服务就各种问题。因为有些文件没被删掉,导致新装的数据库好奇怪的样子。。。 2、安装新数据库
先看看有什么版本可以选,这个没啥说的直接
安装下来就ok,来看看都装了些啥东西
很奇怪一点就是mysql-config依赖竟然还是5.5的,不过用起来没发现啥问题 3、配置
|
请发表评论