请问这是怎么回事? 
按道理mysql_init(&mysql);  为mysql初始化之后,通过mysql_real_connect可以填入参数并连接, 
可是mysql_real_connect出错之后发现mysql所有字段的值都是0xcccccccc initDialog函数里面有这么几句: 
 
mysql_init(&mysql);  if(!mysql_real_connect(&mysql,"localhost","root","123","mydb",3306,NULL,0)) 

TRACE(mysql_error(&mysql)); 
AfxMessageBox("err"); 
return FALSE; 

报的错误号是1251 
#define ER_NOT_SUPPORTED_AUTH_MODE 1251 怎么解决?  非常感谢

解决方案 »

  1.   

    Message: Client does not support authentication protocol requested by server; consider upgrading MySQL client 你的MySQL客户端的版本是多少? MySQL 4.1之后的验证方式上有些变化。 高的联低的,和低的联高的都需要特别设置。
      

  2.   


    我的mysql版本是5.0,需要些什么设置,烦请告知,非常感谢
      

  3.   

    你直接用mysql命令mysql -uroot -p123 -h localhost mydb能联上吗?
      

  4.   

    你的C API 是什么版本的?
      

  5.   

    #1251 - Client does not support authentication protocol requested by server; consider upgrading MySQL client
    解决方法:
    #执行步骤一:
    mysql> UPDATE mysql.user SET Password = OLD_PASSWORD('密码') WHERE Host = 'localhost(主机名)或IP' AND User = '数据库用户名';
    #执行步骤二:
    mysql> FLUSH PRIVILEGES;
    #执行步骤三:(大都遗漏的一步,关键)
    mysql> use mysql
    #执行步骤四:
    mysql> update user set password=old_password('密码');#执行步骤五:
    mysql> flush privileges;