大家好,请教下各位.
我用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区几天没人回答,希望在这能找到答案.
我用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区几天没人回答,希望在这能找到答案.
上边已经说的很清楚了。你的客户端dll版本太低。换一个跟你server端的一致的libmysql.dll就行了。
你的exe注定要依赖于这个dll的。
这应该不是一个exe能解决的问题。
libmysql.dll本来就是一个数据库接口,除非你自己去重写这个接口,并集成到你的exe程序里。