在perl上裝DBD:mysql ,就這事弄了多半天。mysql實在是不咋地
首先,在裝DBD:mysql模組時,make後列印出錯誤資訊,如下:
gcc: language strconst not recognized
gcc: dbdimp.c: linker input file unused because linking not done
gcc: language strconst not recognized
gcc: mysql.c: linker input file unused because linking not done
在網上查了好久,最後終於在mysql官方網站上發現,原來這個是mysql本身的bug,暈,server版本和gcc版本怎麼這麼碰巧就都和bug上穩和呢,這也太被了哦!
The problem is a bug on mysql :
Bug #22430 -xstrconst -mt in Makefile for gcc-4.1.1 on Solaris 10
How to repeat:
Perform configure then make using gcc-4.1.1 on Solaris 10.
Solution
Remove -xstrconst and -mt from Makefiles.
終於能安上DBD了!
接下來又碰上問題了
登陸mysql的時候,正確的使用者名稱密碼,卻不能登陸上去,報錯:Client does not support authentication protocol requested by server; consider upgrading MySQL client
這個也是mysql自己的問題,原因是因為你使用的mysql伺服器版本中使用了新的密碼驗證機制,這需要用戶端的版本要在4.0以上,原來的密碼函數被改為old_password();,這樣使用password()產生的密碼在舊的版本上的用戶端就不好使了
Solution
mysql>set password for user1@"localhost"=old_password('yourPassword');
還有一點也要在這裡記錄一下,就是遠程登入mysql的時候,在資料庫中必須對該使用者給予遠程登陸許可權,即user1@% 。