课程作业要用c++连接mysql server,但是出现些小问题,经查阅资料已经解决,做一下笔记。

环境:vs2017, mysql版本是8.0.16-winx64。

设置项目属性

  项目 -  C/C++ - 常规 - 附加包含目录 里面添加 C:\mysql\mysql-8.0.16-winx64\include。  大家依葫芦画瓢,改成自己的相应目录。

项目 - 配置属性 - 链接器 - 常规 - 附加库目录, 添加C:\mysql\mysql-8.0.16-winx64\lib。 也是要换成自己的目录。

  项目 - 配置属性 - 链接器 - 输入 - 附加依赖项    添加libmysql.lib.

其实就是将头文件和库文件包含进来。

测试程序

 //下面的代码是一个实现C++连接MYSQL数据库的很好的例子

 #include <winsock.h>
#include <iostream>
#include <string>
#include <mysql.h>
using namespace std; #pragma comment(lib, "ws2_32.lib")
#pragma comment(lib, "libmysql.lib")
//单步执行,不想单步执行就注释掉
#define STEPBYSTEP int main() {
cout << "****************************************" << endl; #ifdef STEPBYSTEP
system("pause");
#endif //必备的一个数据结构
MYSQL mydata; //初始化数据库
if ( == mysql_library_init(, NULL, NULL)) {
cout << "mysql_library_init() succeed" << endl;
}
else {
cout << "mysql_library_init() failed" << endl;
return -;
} #ifdef STEPBYSTEP
system("pause");
#endif //初始化数据结构
if (NULL != mysql_init(&mydata)) {
cout << "mysql_init() succeed" << endl;
}
else {
cout << "mysql_init() failed" << endl;
return -;
} #ifdef STEPBYSTEP
system("pause");
#endif //在连接数据库之前,设置额外的连接选项
//可以设置的选项很多,这里设置字符集,否则无法处理中文
if ( == mysql_options(&mydata, MYSQL_SET_CHARSET_NAME, "gbk")) {
cout << "mysql_options() succeed" << endl;
}
else {
cout << "mysql_options() failed" << endl;
return -;
} #ifdef STEPBYSTEP
system("pause");
#endif //连接数据库
if (NULL != mysql_real_connect(&mydata, "localhost", "root", "", "mysql",, NULL, )) //这里的地址,用户名,密码,端口可以根据自己本地的情况更改
{
cout << "mysql_real_connect() succeed" << endl;
}
else {
cout << "mysql_real_connect() failed" << endl;
return -;
} return ;
}

如果能运行,OK!后面的不用看了。

问题

无法解析的外部符号 _mysql_real_connect...

方法一:由于VS建立的项目默认为WIN32 项目,需将平台改为64。设置如下:

(1) 项目—》属性—》配置属性—》配置管理器—》活动解决方案平台,下拉选新建,出现一个新的对号框,在键入选择新平台中选择X64,如下图所示:

(2)不是将C:\mysql\mysql-8.0.16-winx64\lib(安装MySql下的lib文件夹)中的libmysql.dll拷到项目下的Debug文件夹中,而是拷到项目下x64\Debug中(或者C:\Windows\System32中)。重启(必需的)。完毕。。

没有第二步会提示缺少“libmysql.dll”。

参考链接:

1. c++连接mysql并提示“无法解析的外部符号 _mysql_server_init@12”解决方法

2. VS中MFC连接MySQL由于系统不同位(32/64)引起的错误:无法解析的外部符号 _mysql_init@4、_mysql_query

3. 测试代码

c++连接mysql并提示“无法解析的外部符号 _mysql_server_init@12”解决方法&提示缺少“libmysql.dll”的更多相关文章

  1. error LNK2019: 无法解析的外部符号(编程解决方法)

    正在编译...1>Ipv4IPv6traceroutesrc.cpp1>d:\研究生\c++\study\test\test\ipv4ipv6traceroutesrc.cpp(461) ...

  2. java连接mysql数据库详细步骤解析

    java连接mysql数据库详细步骤解析      第一步:下载一个JDBC驱动包,例如我用的是:mysql-connector-java-5.1.17-bin.jar      第二步:导入下载的J ...

  3. 远程连接MySQL错误“plugin caching_sha2_password could not be loaded”的解决办法

    远程连接MySQL错误"plugin caching_sha2_password could not be loaded"的解决办法 问题描述: 今天在阿里云租了一个服务器,当我用 ...

  4. error LNK2019: 无法解析的外部符号 ___glutInitWithExit@12,该符号在函数 _glutInit_ATEXIT_HACK@8 中被引用 1>GEARS.obj : er

    转: http://blog.csdn.net/bill_ming/article/details/8150111 opengl的高级菜鸟问题 看了一本书<OpenGL三维图形系统开发与应用技术 ...

  5. error LNK2019 无法解析的外部符号 __imp__accept@12

    用VS2015编译CuraEngine,出现如下错误: PlatformSocket.obj   error LNK2019 无法解析的外部符号 __imp__accept@12 PlatformSo ...

  6. MySQL中遇到的几种报错及其解决方法

    MySQL中遇到的几种报错及其解决方法 1.[Err] 1064 - You have an error in your SQL syntax; check the manual that corre ...

  7. VS2013 OpenGL 开发程序时: error LNK2019: 无法解析的外部符号 __imp____glutInitWithExit@12,error LNK2019: 无法解析的外部符号 __imp____glutCreateWindowWithExit@8

    环境:Windows 下 OpenGL ,Used in VS2013 前言:刚接触 OpenGL 的人,第一件事当然就是配置环境,说起配置环境 OpenGL 和 DirectX 相差不多,同时也基本 ...

  8. safari无法调试iphone提示“无可检查的应用程序”的解决方法

    iphone上打开safari,随便访问一个网站,mac上通过Safari的开发,我的iphone是可以看到的.如果打开APP,就提示“无可检查的应用程序”. 解决方法 使用XCode运行我们的App ...

  9. 安装office2010提示要安装MSXML6.10.1129.0解决方法

    系统win7 32位 安装office2010出现了错误,提示要安装MSXML6.10.1129.0解决方法 1.下载MSXML6.10.1129.0进行安装 2.若本机已安装过不管用: a.在运行里 ...

随机推荐

  1. Spark Context 概述

    1. Spark 程序在运行的时候分为 Driver 和 Executor 两部分: 2. Spark 的程序编写是基于 SparkContext 的,具体来说包含两方面: a)    Spark 编 ...

  2. 通过jdbc连接MySql数据库的增删改查操作

    一.获取数据库连接 要对MySql数据库内的数据进行增删改查等操作,首先要获取数据库连接 JDBC:Java中连接数据库方式 具体操作如下: 获取数据库连接的步骤: 1.先定义好四个参数 String ...

  3. Django的用户认证组件,自定义分页

    一.用户认证组件 1.auth模块 from django.conrtrib import auth django.contrib.auth中提供了许多方法,这里主要介绍其中的三个: 1)authen ...

  4. CompareToBuilder构建Comparator

    import org.apache.commons.lang.builder.CompareToBuilder; Collections.sort(outboundNotices, new Compa ...

  5. excel单元格内容拆分

    这几天在整理数据,但是数据都在表格的一个单元格中,看起来很不方法,所以在网上找到excel单元格内如拆分的方法,并亲测有效 介绍2种拆分的方法 方法一: (1)在B1输入公式=right(text,[ ...

  6. jquery——尺寸

    1. 获取和设置元素的尺寸 2. 获取元素相对页面的绝对位置:offset() 这种方式增加的盒子不会对之前的结构产生影响 demo: <!DOCTYPE html> <html l ...

  7. POJ 3321 Apple Tree DFS序 + 树状数组

    多次修改一棵树节点的值,或者询问当前这个节点的子树所有节点权值总和. 首先预处理出DFS序L[i]和R[i] 把问题转化为区间查询总和问题.单点修改,区间查询,树状数组即可. 注意修改的时候也要按照d ...

  8. Java集合——集合框架Set接口

    1.Set接口 一个不包含重复元素的collecyion.更确切的讲,set不包含满足e1.equals(e2)的元素e1和e2,并且最多包含一个null元素. 2.HashSet 类实现Set接口, ...

  9. Java面向对象_内部类

    概念:内部类就是类的内部定义的类 成员内部类格式如下:class Outer{ class Inner{} } 编译上述代码会产生两个文件:Outer.class和Outer$Inner.class ...

  10. Postman安装步骤

    Postman是一种网页调试与发送网页http请求的chrome插件. 我们可以用来很方便的模拟get或者post或者其他方式的请求来调试接口. 1.Postman_v4.1.3下载地址: http: ...