我用vc+mysql编了一个程序,mysql的host我改成了我的ip地址,权限我也改了,
1)现在局域网可以正常连接我这台电脑mysql并且可以对它操作,但是外网不行,网上有些说需要安装客户端,请问各位大哥,为什么了?
2)我在本机上创建了数据源,在把应用程序拷到其它电脑时,提示“未发现数据源名称并且未指定默认驱动程序”,那各位大哥,我应该怎么做?最后,总结一下,我在我的电脑上编写带有一个mysql的vc程序,我希望拷到另一台外网的电脑上,他不需要安装任何mysql的东西就能访问我的mysql,谢谢各位大哥了,查了2天,实在有点晕了

解决方案 »

  1.   

    安装MYSQL 的ODBC驱动
    OR用MYSQL提供的API函数#include   "mysql/mysql.h "    main()   
     {    MYSQL   data;   
     MYSQL   *pdata;   
     MYSQL_RES   *result;   
     MYSQL_ROW   row;   
     char   sqlcommand[80];    pdata   =   mysql_connect(&data, "localhost ",   "root ",   "testroot ");   
     if(pdata){   
     printf( "ok,   connected!\n ");   
     mysql_select_db(   pdata,   "966info ");   
     sprintf(   sqlcommand,   "select   *   from   %s ",   "966table ");   
     mysql_query(   pdata,   sqlcommand);   
     result   =   mysql_use_result(   pdata);   
     row   =   mysql_fetch_row(   result);   //   获得结果中的下一条记录   
     mysql_close(   pdata);   
     }    }    编译的时候必须加参数,   与mysql的库连接   -lmysqlclient,   例如:   gcc   -o   test   test.c   -lmysqlclient  
      

  2.   

    谢谢大哥, 我这些都写了,它在局域网里能正常运行,可以连接到我mysql,但是不知道为什么外网就不行,我也用odbc了,但是再用在其它电脑上它就提示错误了,局域网电脑上都没有办法运行
      

  3.   

    odbc提示这个“未发现数据源名称并且未指定默认驱动程序”,网上有的说要批处理,有的说不要
      

  4.   

    权限是根据网上通用这个写的
    mysql>use mysql; 
    mysql>select 'host' from user where user='root'; 
    mysql>update user set host = '%' where user ='root'; 
    mysql>flush privileges; 
      

  5.   

    在运行的机器 是安装MYSQL ODBC 5.1没有
      

  6.   

    如果要用ODBC,必须安装,否则用
    #include "mysql/mysql.h "     main()   
      {     MYSQL data;   
      MYSQL *pdata;   
      MYSQL_RES *result;   
      MYSQL_ROW row;   
      char sqlcommand[80];     pdata = mysql_connect(&data, "localhost ", "root ", "testroot ");   
      if(pdata){   
      printf( "ok, connected!\n ");   
      mysql_select_db( pdata, "966info ");   
      sprintf( sqlcommand, "select * from %s ", "966table ");   
      mysql_query( pdata, sqlcommand);   
      result = mysql_use_result( pdata);   
      row = mysql_fetch_row( result); // 获得结果中的下一条记录   
      mysql_close( pdata);   
      }     }     编译的时候必须加参数, 与mysql的库连接 -lmysqlclient, 例如: gcc -o test test.c -lmysqlclient这个吧
      

  7.   

    不是,1个示例,注意 它是怎样连接MYSQL的, 修改你的程序
      

  8.   

     mysql_init(&mysql);//初始化数据库
     if (&mysql == mysql_real_connect(&mysql, "xxx", "root", "000000", "mysql", 3306, 0, 0))//连接一个mysql服务器 增加
         m_list.AddString(_T("success"));
     else
         m_list.AddString(_T("failed"));
    连了,xxx:代表我的ip,可以在局域网运行,但是外网貌似不行,不知道为什么
      

  9.   

    权限设置检查一下,MYSQL的账号是由主机名和用户名组成的,相同用户名在不同主机则组成不同账号。
      

  10.   

    大哥可不可以举个例子了?我不是很明白
    权限是这样设置的
    mysql>use mysql;  
    mysql>select 'host' from user where user='root';  
    mysql>update user set host = '%' where user ='root';  
    mysql>flush privileges;
    这是参数
    (&mysql, "xxx", "root", "000000", "mysql", 3306, 0, 0)
    xxx是我的IP
      

  11.   

    vc+mysql这种搭配做起来相对比较累。vc+sql server或者c# +.net framework + sql server甚至java + ....
      

  12.   

    连接外网MYSQL服务器?
    在外网MYSQL服务器上,试试
    grant all privileges on *.* to aa@'192.167.0.6' identified by "123";
      

  13.   

    还算比较熟悉vc+mysql,我想先试试,O(∩_∩)O~
      

  14.   

    grant all privileges on *.* to aa@'%' identified by "123";看看MYSQL的HELP吧
      

  15.   

    没有用啊没有用,为什么外网就是访问不了了,提示“2003 -can't connect to mysql server on 'Xxx '(10060)”
      

  16.   

    先按下列步骤检查你的外网连接。如果连PING都不能,则没什么方法了。参考下贴中的检查方法并贴出你的检查结果(#43楼)http://topic.csdn.net/u/20090920/22/14d4f597-b7d4-4c24-b0db-abb2956e66c3.html
    [收集]mysql   无法联接故障现象及原因