linux中mariadb数据库升级

前言

    在使用mariadb的数据库(mysql有同样的问题)过程中,发现老版本的数据库的一些问题:

(1)自增字段是在内存里的,数据库重启后就会丢失,新的自增字段是根据表中已有数据的最大值+1(数据表的如果没有记录,自增字段又从头开始了);

(2)数据库的主从数据库配置,有部分配置项在重启过程中也会丢失。

    因为公司业务需要,上述数据库问题会使公司业务产生bug,因此决定对公司在用的mariadb 10.1.40数据库进行升级

在官网中 https://mariadb.com/kb/en/auto_increment-handling-in-innodb/

可以看到AUTO_INCREMENT Values是在mariadb10.2.3之后改为持久化的,再加上其他的一些问题,公司决定将数据库升级至最新的稳定版本 mariadb 10.5.9

一、备份数据库

1、备份数据库

备份数据库数据

mysqldump -u root -p --all-databases > /home/alldb.sql

数据库data目录也可以备份一份

2、备份配置

cp /etc/my.cnf /etc/my.cnf.bak

3、停止数据库运行

service mysql stop

二、删除数据库

1、为什么要删除原有数据库服务

备注:我有尝试过不删除数据库,直接安装,尝试了一下方式:

(1)通过 yum install 命令安装新版本,会提示有原有老版本,无法安装。

(2)通过 yum update 命令更新版本,通过日志可以看到正常下载了新的安装包,但是在安装时会提示执行预执行的脚本发生错误,无法安装。

(3)官网查看maridb 更新操作   https://mariadb.com/kb/en/upgrading/   也是说明需要先 uninstall 然后再 install 新版本。

2、 删除老版本数据库

yum remove MariaDB-server
//如果有其他组件,也可以一并删除
yum remove MariaDB-client  //  等等

三、安装新版本数据库

建议使用MariaDB官方推荐的stable稳定版:

https://downloads.mariadb.org/mariadb/
http://yum.mariadb.org/

1、添加MariaDB yum源

vim /etc/yum.repos.d/MariaDB.repo
# MariaDB 10.5 CentOS repository list
# http://yum.mariadb.org/
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.5/centos7-amd64/
gpgkey = https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck = 1

2、清除yum源缓存并建立数据源

yum clean all 
yum makecache

3、安装MariaDB新版本

yum install mariadb mariadb-server
yum install mariadb mariadb-client

4、启动新版MariaDB

service mysql start 

// 启动后查看状态

service mysql status

5、升级已有数据库

mysql_upgrade -uroot -p --force

6 、配置开机自启动

systemctl enable mariadb

7、登录并检查数据

mysql -uroot -p

四、数据和配置恢复

1、恢复配置

查看配置是否丢失,如果出现丢失,拿最开始备份的配置恢复

vim /etc/my.cnf

2、恢复用户和数据

登录查看用户、存储过程、数据等,出现丢失,用户可以重新创建、数据拿最初的备份恢复

mysql -u root -p </home/alldb.sql

 

  • 6
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值