mysql ODBC 3.51 Driver – Access Denied
?
同事反饋在應用服務器上配置MySQL ODBC 3.51 Drive時,測試連接MySQL數據庫時報下面錯誤:
?
ERROR?[HYT00]?[MySQL][ODBC?3.51?Driver]Access?denied?for?user:?'xxx@xxxx'?(Using?password:?YES)
?
?
那么出現這個錯誤,其實分多種情況:
?
?
1:賬號密碼錯誤或賬號不存在。
?
?
??? 賬號密碼錯誤或不存在,就會報ERROR [HYT00] [MySQL][ODBC 3.51 Driver]Access denied for user: ‘xxx@xxxx’ (Using password: YES)這樣錯誤。
?
?
2:賬號密碼存在特殊字符,例如特殊字符! @ # $ % ^ ?,那么也可能碰到這個錯誤。
?
?
創建一個測試賬號test,密碼包含一個特殊字符!
mysql>?grant?select?on?MyDB.*?to?test@'%'?identified?by?'Ac3435!6p'; ? Query?OK,?0?rows?affected?(0.00?sec) ? ? ? mysql>?flush?privileges; ? Query?OK,?0?rows?affected?(0.00?sec)
?
然后在一測試服務器上,配置MySQL ODBC時就會出現這個錯誤。如下截圖所示,
?
?
?
?
?
?
?
搜索了一下,發現是MySQL ODBC 3.51不允許復雜密碼,如下英文資料所示, 但是我下載安裝MySQL ODBC 5.3測試發現, 這個版本是完全可以的。當然不清楚從那個版本開始,已經開始支持復雜密碼了。這個很坑爹的特性確實讓人很懵!
?
?
MySQL ODBC 3.51 No-Complex Password
?
Warning – You might have a serious headache with MySQL ODBC 3.51 if the password in your GRANT command contains special characters, such as ! @ # $ % ^ ?. MySQL ODBC 3.51 ODBC Driver does not support these special characters in the password box. The only error message you would receive is “Access denied” (using password: YES)
?
另外,如果網絡不通、端口不通、或者MySQL服務沒有啟用,則會報“Can’t connect to MySQL server on ‘xxxxxx'(10060)”這個錯誤。
?
?