大家好,请教下各位. 
我用VC写了一个连接MYSQL的程序,发现一个问题,不能连接4.1之后版本的MYSQL服务器,提示错误1251. 
#1251 - Client does not support authentication protocol requested by server; consider upgrading MySQL client .问题有两个解决方法, 
1.复制libmysql.dll到程序的目录可以解决这个问题. 
2.网上很多答案了,比如http://hi.baidu.com/freedylan/blog/item/b86b73d00056953f9a502769.html说的执行以下SQL语句.mysql->SET PASSWORD FOR 'some_user'@'some_host'=OLD_PASSWORD('new_password'); 
mysql->UPDATE mysql.user SET Password=OLD_PASSWORD('new_password') WHERE Host='some_host' AND User='some_user'; 
我的要求是只用一个EXE文件,也不要改动MYSQL服务器,怎么连接4.1之后版本的MYSQL服务器.发到VC区几天没人回答,希望在这能找到答案.

解决方案 »

  1.   

    consider upgrading MySQL client . 
    上边已经说的很清楚了。你的客户端dll版本太低。换一个跟你server端的一致的libmysql.dll就行了。
    你的exe注定要依赖于这个dll的。
      

  2.   

    正如楼上所说,你不需要改变的数据库服务器只需要替换你程序所使用的libmysql.dll,换一个与数据库版本匹配的libmysql.dll
      

  3.   

    我知道这两种解决方法,可是我就是不想依赖libmysql.dll,只要一个EXE文件.
      

  4.   


    这应该不是一个exe能解决的问题。
    libmysql.dll本来就是一个数据库接口,除非你自己去重写这个接口,并集成到你的exe程序里。