我的程序里用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);
请问下,在初始化时,或用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);
参考下贴中的检查方法并贴出你的检查结果(#43楼)http://topic.csdn.net/u/20090920/22/14d4f597-b7d4-4c24-b0db-abb2956e66c3.html
[收集]mysql 无法联接故障现象及原因
数据库服务端是打开的。
我不知道像下面这些语句里,哪句决定了寻找数据库的安装路径的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. }