CentOS 6 默认的数据库系统是 MySQL 5.1, 当服务器升级到 CentOS 7 后, 默认的数据库系统改为 MariaDB 5.5, 即等同 MySQL 5.5.
由于数据库的数量较多, 而且体积也很大, 所以不会用 mysqldump 转移, 而且将整个数据库目录搬到新服务器, 再用 mysql_upgrade 工具实现, 以下是由 MySQL 5.1 升级到 MariaDB 5.5 的方法。
在旧服务器先备份 my.cnf 档案及整个数据库目录:
# mkdir /root/mysql-5.1-backup
# cp -R /var/lib/mysql /root/mysql-5.1-backup
# cp /etc/my.cnf /root/mysql-5.1-backup
# cp -R /var/lib/mysql /root/mysql-5.1-backup
# cp /etc/my.cnf /root/mysql-5.1-backup
在新服务器安装 MariaDB 5.5
# yum install mysql mysql-server
正常初次安装会执行 mysql_secure_installation, 但现在不用执行, 将备份下来的 MySQL 数据库目录并放到 /var/lib/mysql:
# cd /var/lib
# mv mysql mysql.org
# cp -R /root/mysql-5.1-backup mysql
# chown -R mysql.mysql mysql
# mv mysql mysql.org
# cp -R /root/mysql-5.1-backup mysql
# chown -R mysql.mysql mysql
将备份下来的 my.cnf 档案放到 /etc:
# cd /etc
# mv my.cnf my.cnf.org
# cp /root/mysql-5.1-backup/my.cnf ./
# mv my.cnf my.cnf.org
# cp /root/mysql-5.1-backup/my.cnf ./
如果旧有的 MySQL 5.1 是用 yum 安装, 需要修改 my.cnf 的设定, 开启 my.cnf:
# vi /etc/my.cnf
在档案的后的位置, 找到以下两行:
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
pid-file=/var/run/mysqld/mysqld.pid
把 log-error 及 pid-file 改成 MariaDB 的相应位置, 改成这样:
log-error=/var/log/mariadb/mariadb.log
pid-file=/var/run/mariadb/mariadb.pid
pid-file=/var/run/mariadb/mariadb.pid
现在执行 mysql_upgrade:
# mysql_upgrade
正常情况应该很快完成, 但实际时间会视乎数据库大小而定。
现在尝试启动 MariaDB:
# systemctl start mariadb
用原有的 MySQL 帐号连接到 mysql:
# mysql -u db_user -p
如果可以成功连接, 及查看资料完整, 那便表示升级成功了。