我的程序里用mysql的C API库,开始数据库默认安装在C盘,程序运行很正常,换台电脑,程序安装在了E盘,运行就出错了,查找到是mysql_query这个函数执行不下去了,不过估计开始初始化应该也是不成功的,
请问下,在初始化时,或用mysql_query等函数时,怎么样做能让程序找的到数据库呀? mysql_options((m_pParseBill->m_mysql), MYSQL_READ_DEFAULT_GROUP, "libmysqld_client");
 mysql_options((m_pParseBill->m_mysql), MYSQL_OPT_USE_EMBEDDED_CONNECTION, NULL);

解决方案 »

  1.   

    先用mysql客户端试试能不能连上
      

  2.   

    是仅你的程序换了个目录?还是把MYSQL也换了个目录?先检查一下你的MYSQL是否已经运行。
    参考下贴中的检查方法并贴出你的检查结果(#43楼)http://topic.csdn.net/u/20090920/22/14d4f597-b7d4-4c24-b0db-abb2956e66c3.html
    [收集]mysql   无法联接故障现象及原因
      

  3.   

     ⊙﹏⊙b汗用客户端可以连接上的,我就是在E盘装了数据库,这个自带了客户端。
    数据库服务端是打开的。
    我不知道像下面这些语句里,哪句决定了寻找数据库的安装路径的1. #include <mysql.h>   
    2. #include <stdlib.h>   
    3. #include <stdio.h>   
    4. static char *server_args[] =   
    5. {   
    6.     "this_program",       /* this string is not used */  
    7.     "--datadir=.",   
    8.     "--key_buffer_size=32M"  
    9. };   
    10. static char *server_groups[] =   
    11. {   
    12.     "embedded",   
    13.     "server",   
    14.     "this_program_SERVER",   
    15.     (char *)NULL   
    16. };   
    17. int main(void)   
    18. {   
    19.     if (mysql_server_init(sizeof(server_args) / sizeof(char *),   
    20.                           server_args, server_groups))   
    21.         exit(1);   
    22.     MYSQL *conn;   
    23.     MYSQL_RES *res;   
    24.     MYSQL_ROW row;   
    25.     char *server = "localhost";   
    26.     char *user = "admin";   
    27.     char *password = "metrics"; /* 此处改成你的密码 */  
    28.     char *database = "test";   
    29.     conn = mysql_init(NULL);   
    30.     /* Connect to database */  
    31.     if (!mysql_real_connect(conn, server,   
    32.                             user, password, database, 0, NULL, 0))   
    33.     {   
    34.         fprintf(stderr, "%s\n", mysql_error(conn));   
    35.         exit(1);   
    36.     }   
    37.     /* send SQL query */  
    38.     if (mysql_query(conn, "show tables"))   
    39.     {   
    40.         fprintf(stderr, "%s\n", mysql_error(conn));   
    41.         exit(1);   
    42.     }   
    43.     res = mysql_use_result(conn);   
    44. //utput table name */   
    45.     printf("MySQL Tables in mysql database:\n");   
    46.     while ((row = mysql_fetch_row(res)) != NULL)   
    47.         printf("%s \n", row[0]);   
    48.     printf ("Number of rows: %lu\n", (unsigned long) mysql_num_rows(res));   
    49.     MYSQL_FIELD *field;   
    50.     while ((field = mysql_fetch_field(res)))   
    51.     {   
    52.         printf("field name %s\n", field->name);   
    53.     }   
    54.     int num_fields = mysql_num_fields(res);   
    55.     for (int i = 0; i < num_fields; i++)   
    56.     {   
    57.         field = mysql_fetch_field_direct(res, i);   
    58.         printf("Field %u is %s\n", i, field->name);   
    59.     }   
    60.     if (!mysql_set_character_set(conn, "utf8"))   
    61.     {   
    62.         MY_CHARSET_INFO cs;   
    63.         mysql_get_character_set_info(conn, &cs);   
    64.         printf("character set information:\n");   
    65.         printf("character set name: %s\n", cs.name);   
    66.         printf("collation name: %s\n", cs.csname);   
    67.         printf("comment: %s\n", cs.comment);   
    68.         printf("directory: %s\n", cs.dir);   
    69.         printf("multi byte character min. length: %d\n", cs.mbminlen);   
    70.         printf("multi byte character max. length: %d\n", cs.mbmaxlen);   
    71.     }   
    72.     /* close connection */  
    73.     mysql_free_result(res);   
    74.     mysql_close(conn);   
    75.     /* Use any MySQL API functions here */  
    76.     mysql_server_end();   
    77.     return EXIT_SUCCESS;   
    78. }  
      

  4.   

    mysql是否正常运行,客户端是否能连接。