賴勇浩(http://laiyonghao.com)
本文基本上是這篇(http://www.ovaistariq.net/490/a-step-by-step-guide-to-upgrading-to-mysql-5-5/)的翻譯。
mysql 5.5 不僅宣傳工作做得好,其實 mysql server 本身也的確是大幅增進了效能,而且 Inno DB 外掛程式的效能也大增。但是沒有啥比較好的升級到 Mysql 5.5 的指南,所以我就自己動手寫了一個,這也沒啥大不了的嘛!
1、下載二進位安裝包
$ cd /root/$ wget http://dev.mysql.com/get/Downloads/MySQL-5.5/mysql-5.5.8-linux2.6-i686.tar.gz/from/http://mysql.oss.eznetsols.org/$ mv index.html mysql-5.5.8-linux2.6-i686.tar.gz
2、備份 mysql 設定檔
$ mkdir /root/mysql-5.1-conf$ cp -R /etc/mysql/ /root/mysql-5.1-conf
3、備份資料目錄
$ mkdir /root/mysql-5.1-data$ cp -R /var/lib/mysql/ /root/mysql-5.1-data
4、備份資料
$ mkdir /root/mysql-5.1-dump$ mysqldump -u user_name -p --databases mysql > /root/mysql-5.1-dump/mysql.sql$ mysqldump -u user_name -p --databases db_name > /root/mysql-5.1-dump/db_name.sql
5、安裝非同步 I/O 庫
Mysql 5.5 的新的 Inno DB 使用了 libaio 來增進效能
$ apt-get install libaio-dev
6、解包
$ tar xzvf mysql-5.5.8-linux2.6-i686.tar.gz
7、把解包的 mysql 目錄放到安裝目錄
$ cp -R mysql-5.5.8-linux2.6-i686 /usr/local/$ cd /usr/local/$ ln -s mysql-5.5.8-linux2.6-i686 mysql
8、刪除舊版本的 mysql
$ apt-get remove mysql-server-5.1$ apt-get autoremove$ apt-get remove mysql-client$ apt-get autoremove
9、把 mysql bin 目錄加到 PATH 環境變數
$ vim /etc/environmentPATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/mysql/bin"
10、為 mysql 安裝目錄和檔案設定正確的許可權
$ cd /usr/local/mysql$ chown -R mysql:mysql data
11、建立 socket 目錄
再次提醒,記得設定許可權
$ mkdir /var/run/mysqld/$ chown -R mysql:mysql /var/run/mysqld/
12、把 mysql 的 sample 配置拷貝到 etc 目錄,並設定好路徑
$ cd /usr/local/mysql/support-files/$ cp my-large.cnf /etc/my.cnf
編輯 /etc/my.cnf,如下值:
user = mysqlsocket = /var/run/mysqld/mysqld.sockport = 3306basedir = /usr/local/mysqldatadir = /usr/local/mysql/datatmpdir = /tmplog_error = /var/log/mysql/error.log
13、把 mysql server 的啟動指令碼拷貝到啟動目錄
$ cd /usr/local/mysql/support-files/$ cp mysql.server /etc/init.d/mysql$ chmod +x /etc/init.d/mysql$ update-rc.d mysql defaults
14、刪除舊版的 mysql 檔案
$ rm -R /var/lib/mysql$ rm -R /etc/mysql$ rm -R /usr/lib/mysql
在安裝後第一次使用 mysql server 時切記要跳過 grants 表,原因有二:一是我們可能希望原來的使用者和許可權資料,二是新版的 grants 表結構有所變化。
15、無 grants 表啟動 mysql
$ mysqld --skip-grant-tables --user=mysql
16、從備份中裝載 mysql 使用者和許可權資料
$ cd /root/mysql-5.1-backup/dump/$ mysql < mysql.sql
17、運行更新指令碼,把一切都升級到 5.5 版本
$ mysql_upgrade
18、如常地停止和啟動 mysql
$ /etc/init.d/mysql stop$ /etc/init.d/mysql start
至此,升級完成,如果你也升級到 5.5 了,記得分享一下心得哦~