2013年5月8日星期三

直接從MySQL 5.1升級:服務器退出而不更新PID文件

Original post: http://anothermysqldba.blogspot.com/2013/05/upgrading-directly-from-mysql-51-server.html

我跑過這一天...

系統是一個非常基本的Oracle Linux安裝,安裝和別人創建的。
(Oracle Linux服務器堅不可摧的企業內核(2.6.39-400.17.1.el6uek.x86_64))
看來,他們希望系統及運行,那麼我進來做休息。

順便說一下,如果甲骨文要採取的RedHat Linux和提高做出自己的版本,他們至少更新自己的產品,用它來工作? MySQL的走紅,因為它很容易為人們得到的分佈,有5.1 仍然在自己的分銷只是奇怪。

那麼首先要做的就是升級,因為Oracle Linux自帶MySQL 5.1中。

# rpm -qa |grep mysql
mysql-server-5.1.66-2.el6_3.x86_64
mysql-5.1.66-2.el6_3.x86_64
mysql-libs-5.1.66-2.el6_3.x86_64

我用這個例子5.5 ....
-rw-r--r--. 1 root root 14976016 Apr 30 06:07 MySQL-client-5.5.31-2.el6.x86_64.rpm
-rw-r--r--. 1 root root 4968092 Apr 30 06:08 MySQL-devel-5.5.31-2.el6.x86_64.rpm
-rw-r--r--. 1 root root 41827172 Apr 30 06:09 MySQL-server-5.5.31-2.el6.x86_64.rpm
-rw-r--r--. 1 root root 3970056 Apr 30 06:09 MySQL-shared-compat-5.5.31-2.el6.x86_64.rpm 

# rpm -Uhv *.rpm
error: Failed dependencies

於是,我只好先刪除依賴包,甚至不知道為什麼,真的讓他們安裝。

# rpm -Uhv *.rpm 
現在你來了可悲的事實,我們很多人都看到...

“ 手動dump和restore使用mysqldump建議。

需要手動升級。

-確保你有一個完整的備份您的數據和my.cnf文件,工作
-關閉MySQL服務器乾淨
-刪除現有的MySQL包。 該命令一般
列出的軟件包,你應該刪除:
RPM-QA | grep的,我'^ MYSQL-'

您可以選擇使用的'rpm - EV <package-name> nodeps'移除
包裡面包含了MySqlClient共享庫。 
庫將被重新安裝MySQL的共享compat軟件包。
-安裝新的MySQL甲骨文公司及/或其聯屬公司提供的軟件包
-確保MySQL服務器啟動
-運行的'mysql_upgrade程序“

這就是為什麼有這麼多的人在MySQL 5.1中,因為他們害怕死亡,使這些變化可能被卡住。 我是幸運的,因為這是一個全新安裝,否則是保持一個備份將是下一個步驟。

既然想讓我刪除與MySQL 5.5中的一切,那麼沒有理由說讓我感動到MySQL 5.6。 刪除以前的軟件包(RPM-E)和安裝新的(轉IHV)後,我有以下
# rpm -qa | grep MySQL
MySQL-client-5.6.11-2.el6.x86_64
perl-DBD-MySQL-4.013-3.el6.x86_64
MySQL-shared-compat-5.6.11-2.el6.x86_64
MySQL-server-5.6.11-2.el6.x86_64
MySQL-devel-5.6.11-2.el6.x86_64

所以,我檢查的my.cnf文件。 因為我可能要進行編輯,如果有人放置到位。
# ls -al /etc/my.cnf
ls: cannot access /etc/my.cnf: No such file or directory


這個例子的目的,我決定保持默認值,我離開它的缺失。
# /etc/init.d/mysql start
Starting MySQL..The server quit without updating PID file ([FAILED]/mysql/localhost.localdomain.pid).

它也有是能夠啟動可以應用於mysql_upgrade

我試圖跳過補助

# /etc/init.d/mysql start --skip-grant
Starting MySQL..The server quit without updating PID file ([FAILED]/mysql/localhost.localdomain.pid). 

在現實中,錯誤日誌中表現了真正的問題:“InnoDB的:無法打開或創建系統表 ”

現在的問題是他們建立了分區驚人,只是有沒有空間的數據庫。 當你應該意識到這一點。 你應該做的第一件事是檢查你正在建設一個系統的系統分區。 但是,這將這篇博客文章,如果我指出這第一點失效。

這一切的寓意是什麼? 如果你看到錯誤“ 服務器退出而不更新PID文件 ”,你應該做的第一件事是檢查錯誤日誌。 它會告訴你到底是什麼問題。