用VC來連接配接遠端MYSQL時,出現如标題一樣的錯誤,網上搜尋了此錯誤産生的原因,最後自己找到了解決辦法。
此錯誤産生的原因:
異常原因在于伺服器端的密碼管理協定陳舊,使用的是舊有的使用者密碼格式存儲;但是用戶端更新之後采用了新的密碼格式。mysql5.6版本遇到這種不一緻的情況就會拒絕連接配接。
詳見mysql手冊“Server Command Options”一節中“--secure-auth"選項的說明:http://dev.mysql.com/doc/refman/5.6/en/server-options.html#option_mysqld_secure-auth
解決方法思路兩種:
1、伺服器端更新啟用secure_auth選項;
2、用戶端連接配接時off掉secure_auth。
解決方法:
一般連接配接遠端主機,修改伺服器段顯得不現實,這離給出在用戶端的解決辦法;
連接配接時,講secure_auth參數設定為否,不使能即可;
指令行時:mysql -p10.51.1.11 -P3308 -uroot --secure_auth=off,
在VC程式設計中:
mysql_init(&mysql);//初始化
mysql.options.secure_auth=false; // 關閉secure_auth