前言

在 CentOS 7 开始,数据库就变成了 MariaDB,使用 yum 命令安装的默认版本是 5.5,这个版本有点旧了。这个文章将指导使用 yum 平滑升级 MariaDB 5.5 到 10.x。

一,查看当前 MariaDB 版本

1.1 命令查看

使用 mysql 指令查看 MariaDB 版本:

[root@localhost ~]# mysql -V

mysql  Ver 15.1 Distrib 5.5.60-MariaDB, for Linux (x86_64) using readline 5.1
1.2 登录 MariaDB 查看

登录 MariaDB 后,就会显示 MariaDB 版本:

[root@localhost ~]# mysql -u root -p

Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 186
Server version: 5.5.60-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

二,备份

重要的事情说三遍,备份,备份,备份

2.1 备份全部数据库

使用 mysqldump 命令备份数据库:

  • -u:帐户名称。
  • -p:输入帐户密码。
  • –all-database:全部数据库。
  • alldb.sql:自定义的备份文件名 (可指定存放路径)。
[root@localhost ~]# mysqldump -u root -p --all-database > alldb.sql
2.2 备份my.cof配置
[root@localhost ~]# cp /etc/my.cnf /etc/my.cnf.bak

三,添加 MariaDB Yum 库

运行下面命令,添加 MariaDB 官方源

[root@localhost ~]# vim /etc/yum.repos.d/MariaDB.repo

# 下面内容添加到MariaDB.repo文件
[mariadb]

name = MariaDB baseurl = http://yum.mariadb.org/10.3/centos7-amd64 gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB gpgcheck=1

四,开始升级

4.1 停用 MariaDB
[root@localhost ~]# systemctl stop mariadb
4.2 移除 MariaDB 旧版本
[root@localhost ~]# yum remove mariadb mariadb-server
4.3 安裝 MariaDB 新版本
[root@localhost ~]# yum install mariadb-client mariadb-server

等待安装完成。

4.4 MariaDB 设置开机自启动
[root@localhost ~]# systemctl enable --now mariadb
4.5 升级 Database

使用命令 mysql_upgrade 进行升级:

[root@localhost ~]# mysql_upgrade -u root -p

Enter password:
Phase 1/7: Checking and upgrading mysql database
Processing databases
mysql
mysql.columns_priv                                 OK
mysql.db                                           OK
mysql.event                                        OK
mysql.func                                         OK
mysql.help_category                                OK
mysql.help_keyword                                 OK
mysql.help_relation                                OK
mysql.help_topic                                   OK
.
# … 中間省略
.
Phase 7/7: Running 'FLUSH PRIVILEGES'
OK

至此,平滑升级成功。

参考

https://mariadb.com/kb/en/upgrading-from-mariadb-55-to-mariadb-100/