MySQL在Centos的卸載和安裝

MySQL的分區表功能自5.1才開始支持,Centos的MySQL為5.0的,需要將其卸載後安裝5.1

下面是一些操作、錯誤和解決方案的記錄:

 

1.關閉目前的mysql服務

    /etc/init.d/mysqld stop

2.確保已正常關閉  www.aiwalls.com  

   ps -ef | grep mysql

   如果沒關閉,kill之

3. 查詢mysql的安裝情況:

    rpm -qa | grep mysql

    將列出來的刪除。

    rpm -e mysql-server.x86_64

    如果報有多個,則用項 –allmatches將其全部刪掉

4. 下載mysql5.5的rpm版

    rpm -ivh mysql-server和client

5. 啟動新的mysql

    /etc/init.d/mysql start

6. 嘗試訪問

   mysql -uroot -p

  我的 默認無密碼,可正常訪問

7.但是之前的php應用沒法用瞭,報cannot load mysql extension .please check your php configuration

  原因是剛才把php-mysql刪瞭,其實是不應該刪的。

8.重新安裝php-mysql,我的系統為centos5.3,php為5.1.依賴的php-mysql也為5.1.yum安裝php-mysql報:

libmysqlclient.so.15()(64bit) is needed 

libmysqlclient.so.15(libmysqlclient_15)(64bit) is needed 

php-common is needed  www.aiwalls.com  

libmysqlclient.so是包含在mysql-share的,但直接安裝5.5版的mysql-share是不行的,因為該版本的沒有libmysqlclient.so.15,都高於15.

需要到https://dev.mysql.com/downloads/mysql/5.1.html#downloads下載(MySQL-shared-compat-5.1.62-1.rhel5.i386.rpm)

然後安裝,但因為我支持裝瞭5.5的mysql-share,會報沖突,即rpm安裝時無法覆蓋之前的,使用項–force強制覆蓋即可。

rpm -ivh php-common-VERSION php-mysql-VERSION安裝成功,解決該問題

 

9.在為其他節點遠程訪問該服務器的數據庫設置時出錯,Access denied for user 'root'@'localhost'。解決方案見:

/database/201204/128445.html,即:

MySQL節點執行GRANT命令為SPIDER服務器進行授權時,發生瞭如下錯誤: 

mysql> GRANT ALL ON *.* TO 'spider'@'spiderdb' IDENTIFIED BY 'spider'; 

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

 

可是我就是使用root用戶登錄的,root的password也是空的,怎麼可能會發生這個錯誤呢。 

 

網上有相同的錯誤,是登錄不進MySQL的解決辦法。如果是忘記瞭密碼,可以用下邊的方法: 

# /etc/init.d/mysql stop 

# mysqld_safe -u mysql –skip-grant-tables –skip-networking & 

# mysql -u mysql 

mysql> UPDATE user SET Password=PASSWORD('newpassword')where USER='root'; 

mysql> FLUSH PRIVILEGES; 

mysql> exit   www.aiwalls.com  

# /etc/init.d/mysqld restart 

# mysql -uroot -pnewpassword 

 

可是這個方法卻解決不瞭我的問題。 

 

網上還有一種辦法,刪除user.user中值為NULL的(delete from user where user is NULL),或更新NULL為test(update user set user=‘test‘ where user is NULL)。但是也不好使。 

 

偶然發現對於單個DB的授權是沒有問題的,難道是root沒有特定DB的權限?寫瞭個script對於每個database執行"GRANT ALL ON $DATABASE.* TO 'root'@'localhost' IDENTIFIED BY 'cps-pt' with grant option;",居然是information_schema的時候出錯瞭。 

 

前兩天同志執行dump/restore的時候,DB曾經死掉過,難道information_schema被破壞掉瞭。 

這好像是MySQL的一個restore時的bug。 

    

 

作者 kangquan2008

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *