1 //下面的代码是一个实现C++连接MYSQL数据库的很好的例子
2
3 #include <winsock.h>
4 #include <iostream>
5 #include <string>
6 #include <mysql.h>
7 using namespace std;
8
9 #pragma comment(lib, "ws2_32.lib")
10 #pragma comment(lib, "libmysql.lib")
11 //单步执行,不想单步执行就注释掉
12 #define STEPBYSTEP
13
14 int main() {
15 cout << "****************************************" << endl;
16
17 #ifdef STEPBYSTEP
18 system("pause");
19 #endif
20
21 //必备的一个数据结构
22 MYSQL mydata;
23
24 //初始化数据库
25 if (0 == mysql_library_init(0, NULL, NULL)) {
26 cout << "mysql_library_init() succeed" << endl;
27 }
28 else {
29 cout << "mysql_library_init() failed" << endl;
30 return -1;
31 }
32
33 #ifdef STEPBYSTEP
34 system("pause");
35 #endif
36
37 //初始化数据结构
38 if (NULL != mysql_init(&mydata)) {
39 cout << "mysql_init() succeed" << endl;
40 }
41 else {
42 cout << "mysql_init() failed" << endl;
43 return -1;
44 }
45
46
47
48 #ifdef STEPBYSTEP
49 system("pause");
50 #endif
51
52 //在连接数据库之前,设置额外的连接选项
53 //可以设置的选项很多,这里设置字符集,否则无法处理中文
54 if (0 == mysql_options(&mydata, MYSQL_SET_CHARSET_NAME, "gbk")) {
55 cout << "mysql_options() succeed" << endl;
56 }
57 else {
58 cout << "mysql_options() failed" << endl;
59 return -1;
60 }
61
62 #ifdef STEPBYSTEP
63 system("pause");
64 #endif
65
66 //连接数据库
67 if (NULL != mysql_real_connect(&mydata, "localhost", "root", "123456", "mysql",3306, NULL, 0)) //这里的地址,用户名,密码,端口可以根据自己本地的情况更改
68 {
69 cout << "mysql_real_connect() succeed" << endl;
70 }
71 else {
72 cout << "mysql_real_connect() failed" << endl;
73 return -1;
74 }
75
76 return 0;
77 }
(2)不是将C:\mysql\mysql-8.0.16-winx64\lib(安装MySql下的lib文件夹)中的libmysql.dll拷到项目下的Debug文件夹中,而是拷到项目下x64\Debug中(或者C:\Windows\System32中)。重启(必需的)。完毕。。