ARM上面远程访问Mysql数据库(转载)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了ARM上面远程访问Mysql数据库(转载),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3900字,纯文字阅读大概需要6分钟。
内容图文
![ARM上面远程访问Mysql数据库(转载)](/upload/InfoBanner/zyjiaocheng/457/97c9dce37f49456e92073ed1a9885243.jpg)
在PC上使用MYSQL非常正常,但是移植到ARM开发板上就总是提示不能Load Mysql的驱动。无论我把库文件放在那里,都无法使用。找资料的时候,无意中发现了一篇文章,终于可以在QT上使用MYsql了。
1.准备Mysql驱动源码。我已经抽取出来了。下载文件:MySQL-source.rar
解压后一共有9个文件。
my_alloc.h mysql_com.h mysql_version.h qsql_mysql.h my_list.h mysql.h mysql_time.h qsql_mysql.cpp typelib.h
把这9个文件复制到工程目录,还有加入工程。
2.下载mysql的库文件。
ARM版:mysql-lib-arm.rar
PC版:mysql-lib-pc.rar
解压后分别有一个文件夹。然后把两个文件夹的路径放到/usr/local/mysql目录下。
3.加到环境变量$LD_LIBRARY_PATH中。ARM版本的除了在PC上编译用,也要下载到开发板上运行的时候用。开发板上同样要把路径加入$LD_LIBRARY_PATH
(3)通过export添加目录,在终端输入命令,如果编PC版程序就用添加目录:export LD_LIBRARY_PATH= /usr/local/mysql/mysql-lib-pc,如果编译ARM板的把目录最后改为mysql-lib-arm
关闭该终端,打开一个新的终端,输入echo $LD_LIBRARY_PATH命令,则显示为空白。说明用shell指令添加目录在关闭终端后就没有了。
(4)也可以编辑~/.profile文件,添加内容:
if [ -d "$HOME/lib"] ; then
export LD_LIBRARY_PATH="/usr/local/mysql/mysql-lib-pc"
fi
当使用Ctrl+Alt+F1登录进去tty1时,使用echo $LD_LIBRARY_PATH可以看到置的环境变量。
但是在终端,输入echo命令,仍然为空白。环境变量设置没有效果。
(5) 如果不想每次新启一个shell都设置LD_LIBRARY_PATH,可以编辑~/.bash_profile文件:
$ vi ~/.bash_profile
添加:
LD_LIBRARY_PATH=/usr/local/mysql/mysql-lib-pc
export LD_LIBRARY_PATH
这两行,完成之后.bash_profile如下所示:
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/bin
LD_LIBRARY_PATH=/usr/local/mysql/mysql-lib-pc
export PATH
export LD_LIBRARY_PATH
然后运行
$ source ~/.bash_profile 就行了。
4.然后回到工程文件里面。
修改工程文件 (.pro文件)最后加入一句 LIBS += -L/usr/local/mysql/mysql-lib-pc -lmysqlclient
其中红色部分是你刚刚解压的库文件路径。如果编译PC版就写PC版本的路径,编译ARM就写ARM版本的路径。
5.准备工作都完成了,之后就可以写程序了。和一般情况下连接Mysql差不多。在连接Mysql处的代码,现在是这样子的。
加入 #include "qsql_mysql.h"
MYSQL *conR=mysql_init(NULL);
mysql_real_connect(conR,NULL,NULL,NULL,NULL,0,NULL,0);
QMYSQLDriver *drvR = new QMYSQLDriver(conR);
QSqlDatabase db=QSqlDatabase::addDatabase(drvR);
db.setHostName("192.168.0.210");
db.setDatabaseName("test");
db.setUserName("root");
db.setPassword("");
if(!db.open())
{
qDebug()<<"error";
exit(1);
}
else
qDebug()<<"OK";
6.在PC上编译程序,可能会出现问题,需要自己加上#include 头文件,而在编译ARM板程序时,又会出现问题,说几个函数没有声明。
qsql_mysql.cpp 1417行:函数numericalPrecisionPolicy()没有声明:
我直接把程序屏蔽了,因为我不需要使用它提供的查询功能:
/*switch(numericalPrecisionPolicy()) {
case QSql::LowPrecisionInt32:
v=QVariant(dbl).toInt();
break;
case QSql::LowPrecisionInt64:
v = QVariant(dbl).toLongLong();
break;
case QSql::LowPrecisionDouble:
v = QVariant(dbl);
break;
case QSql::HighPrecision:
default:
v = val;
ok = true;
break;
}*/
还有一个是:qsql_mysql.cpp 1417行:
/*if(isIdentifierEscaped(table, QSqlDriver::TableName))
table = stripDelimiters(table, QSqlDriver::TableName);*/
7.最后,所有问题解决,程序就可以运行了,亲测可用。
8.编译的时候可能找不到库文件,在相应文件夹下创建软连接。
ARM上面远程访问Mysql数据库(转载)
标签:
本文系统来源:http://www.cnblogs.com/yangdadahome/p/4773599.html
内容总结
以上是互联网集市为您收集整理的ARM上面远程访问Mysql数据库(转载)全部内容,希望文章能够帮你解决ARM上面远程访问Mysql数据库(转载)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。