iT邦幫忙

0

承php現在MYSQL資料庫的錯誤訊息相關問題

之前問題所提:
小弟最近在編寫網站的時侯遇到一件問題
在本機(windows server2003+mysql)編寫網站的時侯php可以連結到資料庫
但是換成連結預定要放置網站的伺服器資料庫就會出現mysql error#2000的錯誤訊息
預定要放置伺服器資料的網站是RedHat5版本的資料庫和資料庫版本是mysql 5.0.22版
請問一下是怎麼了
我在我家用FedoraCore10沒有這個問題存在呢??
雖然網頁伺服器還是以windows server2003為主
資料庫伺服器為RedHat5的MYSQL的mysql 5.0.22


我現在已經查到是屬於MYSQL4.1安全密碼驗證的問題
但也依循她們的解決方案去處理
但還是無法連線
小弟想要請教下列幾個問題
1.OLD_PASSWORDS要如何設定(目前我所知道的是屬於mysql的設定之一)
2.裡面有一個解決方案是升級mysql版本但是我的mysql版本為5.0.22版,那要升級多少版本才比較不會有問題呢
3.承上一題,升級後會不會對原有資料表有相關問題呢
就以上三項問題請教各位大大

1 個回答

4
wiseguy
iT邦超人 1 級 ‧ 2011-09-14 20:29:45
最佳解答
  1. 在 /etc/my.cnf 裡面的 [mysqld] 區段裡面加一行
    old-passwords=1
    存檔後重新啟動 mysql。

  2. 升級當然是升到目前官方建議的 5.5.15 版最好。

  3. 升級後會不會對原有資料表有相關問題?對資料應該是一點影響也沒有,程式存取部份則視你的 SQL 有沒有使用 5.0 版有,而 5.5 版已經廢棄的函數了。不過不能直接就在 Linux 就給它用 yum upgrade 升級喔,這樣你的資料並不會跟著升到 5.5,還可能會毀掉。請按下列方式:

(1) 用這指令把資料匯成 SQL 檔 (會輸入兩次密碼):
echo 'show databases' | mysql -N -u root -p | sed '/^\(information_schema\|mysql\)$/d' | xargs mysqldump -B --opt --default-character-set=binary -u root -p -r mydata.sql
(2) 停掉 mysql 5.0,並把資料目錄改名字,保留起來以防萬一。
(3) 移除 mysql 5.0,並安裝 mysql 5.5 (或直接升級亦可)
(4) 把 mysql 服務啟動,再下這個指令把資料匯回去:
mysql --max_allowed_packet=64M --default-character-set=binary -u root -p < mydata.sql

我要發表回答

立即登入回答