MySQL / MariaDB 5.5 升級到 MySQL 5.6

RHEL 及 CentOS 7 預設的資庫系統是 MariaDB 5.5 (等同 MySQL 5.5), 雖然現時 MySQL 最新版是 5.7, 但一般上升級都建議一級一級上, 而 MySQL 5.6 比 5.5 也提高了效能及提供更多功能, 以下是在 RHEL 及 CentOS 從原來的 MySQL 5.5 或 MariaDB 5.5, 升級到 MySQL 5.6 的步驟。

1. 備份 MySQL

不論做任何升級或遷移, 也要先備份 MySQL 的資料, 先停止 MySQL 或 MariaDB 伺服器:

MySQL:

# systemctl stop mysql

MariaDB:

# systemctl stop mariadb

然後將資料庫目錄移到另一個目錄:

# mv /var/lib/mysql /var/lib/mysql55.bak

2. 移除 MySQL

檢查安裝在系統的 MySQL 相關套件, 可以用 rpm 或 yum 指令查看:

# rpm -qa | grep -i mysql

# rpm -qa | grep -i mariadb

會返回安裝在系統的 MySQL 或 MariaDB 套件, 以下是 CentOS 7 預設的 MariaDB 返回結果:

mariadb-libs-5.5.52-1.el7.x86_64
mariadb-5.5.52-1.el7.x86_64
mariadb-server-5.5.52-1.el7.x86_64

知道了安裝在系統的 MySQL 相關套件後, 用 yum 指令移除, 以下是根據上面的查詢結果移除:


# yum remove mariadb-libs mariadb-server mariadb-client mariadb

3. 安裝 MySQL 5.6

先安裝 MySQL Repository:

# rpm -Uvh http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm

安裝 mysql-community-server 套件, MySQL Server 及 MySQL client 已經包括在該套件內:

# yum install mysql-community-server

4. 升級資料庫

安裝好 MySQL 5.6 後, 在啟動 MySQL 前需要將 MySQL / MariaDB 5.5 的資料升級:

先將 MySQL 5.6 預設的資料庫目錄改名:

# mv /var/lib/mysql /var/lib/mysql56

把原來 MySQL 5.5 的資料移到預設 MySQL 資料庫目錄, 及改變權限:

# cp -R /var/lib/mysql55.bak /var/lib/mysql
# chown -r mysql.mysql /var/lib/mysql

現在可以啟動 MySQL 5.6:

# systemctl start mysql

然後執行 mysql_upgrade 升級數據及權限:

# mysql_upgrade -u root -p

當 mysql_upgrade 執行成功後, 所有資料庫便升級完成, 可以嘗試連接到 MySQL 並檢查資料是否完整, 最後一步是設定開機自動啟動 MySQL:

# /usr/bin/systemctl enable mysqld


Latest Comments

  1. wen 04 May 2017

Leave a Reply