標籤:
From: http://www.cnblogs.com/trying/p/3217165.html
對付Linux的問題,其實很多都是許可權問題,細心想一下即可。
centos6.4預設裝的是mysql5.1,使用 yum update 也update不了。google了一下,找到個yum安裝的方法:http://www.webtatic.com/packages/mysql55/
先備份一下:(非常重要)
- 備份資料庫檔案: 複製 /var/lib/mysql/下的資料庫檔案到安全的目錄 (複製回來的時候注意修改許可權 )
cp -r /var/lib/mysql /home/www/bak/mysql/
再把這個目錄清空了(mysql啟動的時候會重新載入資料庫檔案)
- 備份mysql資料庫使用者檔案:mysql內建的使用者,root等也需要我們去備份。(這裡我遇到了問題,預存程序也得備份,不知道為什麼檔案中沒有儲存這些資訊)。
mysqldump -u username -p --database mysql > /home/www/bak/mysqluser.sql
再將 /etc/my.cnf 備份一下,cp一下即可。
下面開始升級:
- 加個yum的源:
rpm -Uvh http://mirror.webtatic.com/yum/el6/latest.rpm
國外的童鞋弄d~~~
- 裝個replace的軟體,這個非常方便,省去了我們自己去卸載mysql的步驟
yum install mysql.`uname -i` yum-plugin-replaceyum replace mysql --replace-with mysql55
- 安裝mysql5.5 ,再啟動一下;這個時候啟動應該是有很多提示。所以用safe install來啟動
yum install mysql55 mysql55-server
mysql_secure_installation
- 裝好後開始匯入原來的資料。
cp -rf /home/www/bak/mysql/* /var/lib/mysql/
chown -R mysql.mysql /var/lib/mysql
這裡cp命令預設是加了 -i參數的,可以在 ~/.bashrc裡面去掉注釋,然後 source ~/.bashrc 使用改動生效 , 再將檔案許可權所有者改回mysql(非常重要!)
- 匯入原來的使用者sql檔案
mysql < /home/www/bak/mysqluser.sql
重啟一下Mysql即可。
在整個系統升級的過程中,遇到很多問題,包括nginx的問題,phpMyAdmin沒法登入,Thinkphp沒法登入等問題,原因是php的session沒法寫。找到原因是升級的過程中,apache也升級了,session目錄的所有者是apache。改為Nginx後問題解決...
這裡有個問題,恢複過程中,預存程序沒了?!還是整個資料庫都 dump了出來,再匯入恢複。就是不明白為什麼資料庫檔案包含了視圖,卻沒有預存程序和函數呢?
分析一下, ibdata1保持的是所有 Innodb 的資料庫檔案,.frm,.xxx這些檔案儲存的是各自的資料庫檔案...
還有一篇參考文章,手把手教學:http://www.ovaistariq.net/490/a-step-by-step-guide-to-upgrading-to-mysql-5-5/
mysql升級5.5