天天看點

vc++>>Connection using old (pre-4.1.1) authentication protocol refused (client option 'secure_auth' enable

用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