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

如果可以成功連接, 及查看資料完整, 那便表示升級成功了。




Leave a Reply