Linux 技术手札

MySQL 5.1 升级到 MariaDB 5.5

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

在新服务器安装 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

将备份下来的 my.cnf 档案放到 /etc:

# cd /etc
# 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

把 log-error 及 pid-file 改成 MariaDB 的相应位置, 改成这样:

log-error=/var/log/mariadb/mariadb.log
pid-file=/var/run/mariadb/mariadb.pid

现在执行 mysql_upgrade:

# mysql_upgrade

正常情况应该很快完成, 但实际时间会视乎数据库大小而定。

现在尝试启动 MariaDB:

# systemctl start mariadb

用原有的 MySQL 帐号连接到 mysql:

# mysql -u db_user -p

如果可以成功连接, 及查看资料完整, 那便表示升级成功了。

Exit mobile version