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
如果可以成功連接, 及查看資料完整, 那便表示升級成功了。
No Responses