欧阳简之 > CentOS7平滑升级 MariaDB 5.5 到 10.x 新版本实践

热爱代码,对每一行代码保持一颗敬畏之心。

自从 CentOS 7 开始,自带的数据库就变成 MariaDB 了,yum 安装之后的默认版本是 5.5,但是这个数据版本已经比较老了,无论是安装全新的 Percona 还是升级 MariaDB 第一步始终是不要忘记备份

备份数据库

# 备份数据库,如果升级顺利是不要实施备份还原的 
mysqldump -u root -p --all-databases > alldb.sql
# 如果想保留自己的 my.cof 配置,则备份一下这个文件 
cp /etc/my.cnf /etc/my.cnf.bak

卸载当前数据库

# 停止数据库运行 
systemctl stop mariadb
# 卸载 MariaDB 老版本 
yum remove mariadb mariadb-server

添加 MariaDB Yum 库

建议使用 MariaDB 官方推荐的 stable 稳定版
https://downloads.mariadb.org/mariadb/
http://yum.mariadb.org/

添加 MariaDB 官方源

vi /etc/yum.repos.d/MariaDB.repo

# MariaDB 10.4 CentOS repository list
# http://downloads.mariadb.org/mariadb/repositories/
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.4/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

清除 yum 缓存

yum clean all 
yum makecache

升级数据库

安装新版本数据库

# 安装 MariaDB 新版本 
yum install mariadb mariadb-server

# 启动新版 MariaDB
systemctl start mariadb

升级已有数据库

mysql_upgrade -uroot -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
mysql.host                                         OK
mysql.ndb_binlog_index                             OK
mysql.plugin                                       OK
mysql.proc                                         OK
mysql.procs_priv                                   OK
mysql.proxies_priv                                 OK
mysql.servers                                      OK
mysql.tables_priv                                  OK
mysql.time_zone                                    OK
mysql.time_zone_leap_second                        OK
mysql.time_zone_name                               OK
mysql.time_zone_transition                         OK
mysql.time_zone_transition_type                    OK
mysql.user                                         OK
Upgrading from a version before MariaDB-10.1
Phase 2/7: Installing used storage engines
Checking for tables with unknown storage engine
Phase 3/7: Fixing views
Phase 4/7: Running 'mysql_fix_privilege_tables'
Phase 5/7: Fixing table and database names
Phase 6/7: Checking and upgrading tables
Processing databases
information_schema
performance_schema
Phase 7/7: Running 'FLUSH PRIVILEGES'
OK

配置服务自启动

systemctl enable mariadb

登录数据库验证

mysql -uroot -p

select version();
+-----------------+
| version()       |
+-----------------+
| 10.4.10-MariaDB |
+-----------------+
tagged by centos mariadb