教你在 Debian 和 Ubuntu 上升級 MySQL
步驟1:備份 MySQL 配置文件。
$ sudo mkdir /backup
$ sudo tar cvfvz /backup/mysql_conf.tgz /etc/mysql
步驟2:把資料庫導出到一個 .sql 文件,並且把數據存放路徑下面的數據也備份起來。
$ sudo sh -c 'mysqldump -u root -p -A --events > /backup/backup_db.sql
$ sudo tar cvfvz /backup/mysql_data.tgz /var/lib/mysql
注意:如果你為你的在線 MySQL 系統提供了持續備份,強烈建議你在執行上面步驟時使用單事務選項,或顯式使用鎖(以保證數據一致性 —— 譯註),詳見這個教程。
步驟3:停止 MySQL 服務
$ sudo service mysql stop
步驟4:卸載 MySQL 軟體包
$ sudo apt-get remove mysql-server mysql-client mysql-common
$ sudo apt-get autoremove
$ sudo apt-get autoclean
使用 apt-get 卸載時不要用 purge 選項,這會刪除 MySQL 配置文件和其它一些以後要用到的數據。
步驟5: 安裝 MySQL 依賴包(內核非同步 IO 訪問庫),MySQL 5.5以及之後的版本都依賴它。
$ sudo apt-get install libaio1
步驟6:從官網下載 Debian 版的 MySQL 軟體包
32位系統:
$ wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.15-debian6.0-i686.deb
64位系統:
$ wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.15-debian6.0-x86_64.deb
步驟7:安裝 MySQL 軟體包
$ sudo dpkg -i mysql-5.6.15-debian6.0-*.deb
這個軟體包會被安裝在 /opt/mysql 目錄下面。
步驟8:將 MySQL 命令所在的路徑添加到系統環境變數 PATH 內。
Debian 上:
$ sudo sh -c 'echo "PATH=$PATH:/opt/mysql/server-5.6/bin" >> /etc/profile'
$ source /etc/profile
$ sudo sh -c 'echo "PATH=${PATH}:/opt/mysql/server-5.6/bin" >> /etc/environment'
$ source /etc/environment
步驟9:進入 MySQL 配置文件,修改下面兩行配置。
$ sudo vi /etc/mysql/my.cnf
-
basedir = /opt/mysql/server-5.6
lc-messages-dir = /opt/mysql/server-5.6/share
步驟10:設置啟動腳本
複製 MySQL 啟動腳本到 /etc/init.d 目錄下,並且將腳本設置為開機啟動,這樣一來 MySQL 就能在系統啟動的時候自動啟動了。
$ sudo cp /opt/mysql/server-5.6/support-files/mysql.server /etc/init.d/mysql
$ sudo update-rc.d mysql defaults
步驟11:(僅限 Ubuntu) 編輯AppArmor配置
MySQL 的上個版本安裝時會為 AppArmor 服務創建一個配置文件,這個文件在 MySQL 卸載後會保留在系統中,但是它與現在安裝好的 MySQL 版本不兼容。你需要重新編輯下這個配置文件,然後 MySQL 服務才能正常啟動。
首先,建一個軟鏈接。
$ sudo ln -s /opt/mysql/server-5.6/bin/mysqld /usr/sbin/mysqld
然後編輯 MySQL AppArmor 配置文件。
$ sudo vi /etc/apparmor.d/usr.sbin.mysqld
/opt/mysql/server-5.6/lib/plugin/ r,
/opt/mysql/server-5.6/lib/plugin/.so mr,
/opt/mysql/server-5.6/share/** r,
最後重啟 AppArmor 服務。
$ sudo service apparmor restart
步驟12:(還是僅限 Ubuntu)刪除上個 MySQL 版本留下的自啟動配置文件。
這個版本的 MySQL 使用 SysVinit (就是 /etc/init.d/mysql)來代替。
$ sudo rm /etc/init/mysql.conf
步驟13:啟動 MySQL 服務。
$ sudo service mysql start
步驟14:恢復 MySQL 資料庫。
$ sudo mysql -u root -p < /backup/backup_db.sql
步驟15:最後,升級 MySQL 系統表。
$ sudo /opt/mysql/server-5.6/bin/mysql_upgrade -v -u root -p
解決 MySQL 升級過程中產生的問題
如果 Ubuntu 下的 MySQL 服務啟動時出現如下錯誤,就是由於舊版 MySQL AppArmor 配置文件禁止其運行而引起。你需要參考步驟11來更新 AppArmor 的配置文件。
Dec 20 19:57:48 ubuntu kernel: [ 5856.960592] type=1400 audit(1387598268.807:39): apparmor="STATUS" operation="profile_replace" name="/usr/sbin/mysqld" pid=25216 comm="apparmor_parser"
via: http://xmodulo.com/2013/12/upgrade-mysql-server-debian-ubuntu.html
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive