本机上(XP)程序远程连接服务器的Mysql(Linux下的),读写都没有问题!但把程序拷贝到另一台服务器上时(windows 2003),连不上数据库,达人们快来!
mysql_init (&mysql);
  if(!mysql_real_connect(&mysql,strHost,strUser,userpwd,datasource,port,NULL,0))

  AfxMessageBox("connect mysql database failed"); 
  mysql_close(&mysql);
  return FALSE;
  }

解决方案 »

  1.   

    应该是ROOT用户没有权限从远程连接数据库,修改Root的权限
    搜索一下,网上多的是
      

  2.   

    错误信息是什么?贴出来看一下。原因有多种。或者你可以参考一下这个贴子。
    http://topic.csdn.net/u/20090920/22/14d4f597-b7d4-4c24-b0db-abb2956e66c3.html
     [收集]mysql   无法联接故障现象及原因
      

  3.   

    GOOGLE吧。或者看MYSQL官方的FAQ列表。
      

  4.   

    关键是本机能够远程linux上的mysql数据库 放到另一台机子就不可以了!!!
    错误信息:Client does not support authentication protocol requested by server; consider upgrading MySQL client 
      

  5.   

    主要得看报什么错误,可以按以下方式检查一下:1 先看网络访问是不是通的。ping,telnet XXXX 33062 如果网络和端口都可以访问,或者telnet立刻返回无权限类提示,一般就是授权问题。
      grant一下权限就可以,语法自己搜索一下。
      类似grant all on *.* to xx@xxxx idenitied by xxxx.3 如果网络不通,先解决网络问题。看下路由是否正确,是否有防火墙阻止了包? 
      如果搞不清楚哪里出了问题,用抓包工具抓下包看看。4 最后就是确认你的程序拷贝过去是不是还能用?是不是需要重新编译一下?
      

  6.   

    你检查下连接配置信息,你在win2003上连接的时候,用的连接信息是什么?指向的主机是谁?
    比如如果你的服务器的IP是192.168.3.3,你在win2003上写的连接信息就应该是mysql -h192.168.3.3 -uroot -p123456,那么检查下是否存在'root'@'192.168.3.3'这个用户?如果存在,它是否允许远程连接?
    我的判断是你没有这么一个账户或者这个账户没有权限。
    可以grant all on *.* to 'root'@'192.168.3.3' identified by 123456;