重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
我们如果要通过ODBC连接MYSQL就需要配置MYSQL驱动,那么如何在ODBC数据源中配置MYSQL驱动呢?
成都创新互联网站建设公司是一家服务多年做网站建设策划设计制作的公司,为广大用户提供了成都网站设计、做网站,成都网站设计,广告投放,成都做网站选成都创新互联,贴合企业需求,高性价比,满足客户不同层次的需求一站式服务欢迎致电。
工具/材料
ODBC数据源管理器
操作方法
01、首先要下载MYSQL驱动程序,点击驱动程序进入安装界面,点击Next按钮
02、在弹出的安装类型界面中选择Typical类型。
03、然后按Win+R组合键打开运行界面,输入control命令。
04、接下来在控制面板中点击管理工具选项。
05、然后进入管理工具我们点击ODBC数据源选项,这里大家根据自己的系统版本选择即。
06、在弹出的ODBC数据源管理程序界面中点击右侧的添加按钮。
07、然后进入创建数据源界面,这里选择MySQL ODBC 8.0 Unicode Driver选项。
08、接着我们配置Mysql的连接地址和用户名密码即可。
09、然后点击Test按钮,如果弹出如下图所示的提示则代表连接成功。
10、最后我们点击确定就可以将MySQL的驱动程序加载进ODBC数据源管理程序中了。
操作方法
01、首先要下载MYSQL驱动程序,点击驱动程序进入安装界面,点击Next按钮
02、在弹出的安装类型界面中选择Typical类型。
03、然后按Win+R组合键打开运行界面,输入control命令。
04、接下来在控制面板中点击管理工具选项。
05、然后进入管理工具我们点击ODBC数据源选项,这里大家根据自己的系统版本选择即。
06、在弹出的ODBC数据源管理程序界面中点击右侧的添加按钮。
07、然后进入创建数据源界面,这里选择MySQL ODBC 8.0 Unicode Driver选项。
08、接着我们配置Mysql的连接地址和用户名密码即可。
09、然后点击Test按钮,如果弹出如下图所示的提示则代表连接成功。
10、最后我们点击确定就可以将MySQL的驱动程序加载进ODBC数据源管理程序中了。
1、下载odbc驱动 需要下载两个东西 instantclient-basiclite-nt-12.1.0.1.0.zipinstantclient-odbc-nt-12.1.0.1.0.zip 由于时间推移,版本号会更新,网址也会变化。2、解压缩这两个文件到同一个文件夹a、分别解压缩这两个文件b、解压缩后两个文件夹里面都有instantclient_12_1目录,将odbc的instantclient_12_1目录下的内容拷贝到basicclient下的instantclient_12_1里面c、为了使目录整齐简介,将basicclient下的instantclient_12_1目录拷贝到D:\Program Files\instantclient_12_13、将oracle数据库所在电脑上的NETWORK目录拷贝到instantclient_12_1目录下,oracle服务器所在电脑的network在D:\oraclexe\app\oracle\product\11.2.0\server这个位置。 4、修改NETWORK\ADMIN\tnsnames.ora文件,将主机名换成IP地址。下面例子当中10.17.176.138以前是oracle数据库所在电脑上的主机名。主机名可能无法正确连接,所以换成IP地址。 XE =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = 10.17.176.138)(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = XE))) 5、添加环境变量TNS_ADMIN,变量值指向ADMIN目录,本人的配置是D:\Program Files\instantclient_12_1\NETWORK\ADMIN 6、双击instantclient_12_1目录下的odbc_install.exe完成安装。 注:安装时出现DOC框,并一闪而过,可能无法判断是不是正确安装。其实可以cmd进入instantclient_12_1目录,并.\odbc_install.exe手动安装。 7、配置数据源并测试为了不影响测试,首先将oracle数据库所在电脑的防火墙关闭,或允许例外TCP 1521端口。配置客户端电脑,控制面板-数据源-用户DSN-添加中选择Oracle in instantclient_12_1,TNS Service Name中选择数据库名,本人名字是XE,点Test Connection,如果提示成功就OK了。 8、防止乱码 在安装数据库的电脑上(我的oracle是安装在window上的),查看HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE/KEY_XXX下的NLS_LANG值,在客户端电脑上增加环境变量NLS_LANG,其值是在上面得到的NLS_LANG值。我服务器的NLS_LANG是SIMPLIFIED CHINESE_CHINA.ZHS16GBK
Qt项目里用到了mysql,运行后报错:
查阅资料知道需要配置mysql驱动,本以为几分钟解决的事情,没想到开启了恶魔经历,整整两天时间,mmp!
Stop! 废话别说啦,入正题:
首先,Qt mysql的安装和环境配置就略了,一搜一大把。
不过注意两点:
先进入到/Users/ing/Qt5.14.2/5.14.2/Src/qtbase/src/plugins/sqldrivers目录下,执行:
这里确保qmake用的qt里的就行
其实你可以配置下qt相关的环境变量,在bash_profile里添加:
然后,source ~/.bash_profile ,还有别忘了 source ~/.zshrc
执行成功的话会输出:
根据提示 依次执行:
make sub-mysql
make
make install
进入/Users/ing/Qt5.14.2/5.14.2/clang_64/plugins/sqldrivers下执行,查看链接库:
输出:
此时,运行qt程序 依旧报错。
根据查阅的资料,问题出在
网友们所说的“诡异”的路径那一行(你的输出可能和我的不一样的,但问题应该一样) ,也就是有 libmysqlclient.21.dylib 这行。
另外查了下 @repath 的含义 意思是说 不能明确的指向。。。所以 这里就需要将libmysqlclient.21.dylib 指向扳到正确的道路。
方法就是利用 install_name_tool -change
执行
这里一定要注意顺序,刚开始我就是顺序搞错了,死活就是不行,最后跑到官方论坛里用蹩脚的英语发帖求教也无果,最后还是一遍的重试,一遍的检查才发现的。一天就这么浪费了。
此刻在运行qt程序 ,就不会再报上面的错误了。
撒花,礼花搞起~~~
方法/步骤
1
下载mysql
C链接库
选择C的链接库
2
将C的连接库解压到到C:/mysql
目录下
3
我的QT
安装在C盘目录下,版本号是4.8.6
所以打开目录
C:\QT\4.8.6\src\plugins\sqldrivers\mysql
4
将C:/mysql/lib/libmysql.dll
和C:/mysql/lib/libmysql.lib
复制到此处。
5
编辑目录下的mysql.pro文件
添加
INCLUDEPATH+="C:/mysql/include"
LIBS+="C:/mysql/lib/opt/libmysql.lib"
运行qt的控制台窗口,方便使用qmake
切换到目录下
C:\QT\4.8.6\src\plugins\sqldrivers\mysql
执行qmake
运行VS2010的控制台工具
切换到
C:\QT\4.8.6\src\plugins\sqldrivers\mysql
目录下
执行nmake
和nmake
release
是nmake不是make
这样在C:\QT\4.8.6\src\plugins\sqldrivers\mysql
目录下的debug
目录和release
目录下分别会产生
qsqlmysqld4.dll
qsqlmysqld4.lib
qsqlmysql4.dll
qsqlmysql4.lib
将上面提到的四个文件复制到
C:\QT\4.8.6\plugins\sqldrivers
最后把
C:\mysql\lib\opt\libmysql.dll
C:\mysql\lib\opt\libmysql.lib
复制到
C:\Windows\system32\
目录下。
最后测试mysql
可不可以在qt中正常使用
新建一个qt
控制台项目
输入以下代码
#include
QCoreApplication
#include
QDebug
#include
qstring.h
#include
qstringlist.h
#include
qsql.h
#include
qsqldatabase.hint
main(int
argc,
char
*argv[])
{
QCoreApplication
a(argc,
argv);
qDebug()
"Available
drivers:";
QStringList
drivers
=
QSqlDatabase::drivers();qDebug()
drivers;return
a.exec();
}
运行测试一下,看看有没有图片中红圈圈中的两项内容