linux C API连接并查询mysql5.7.9
开发环境:
- ubuntu16.04
- mysql5.7.9
- 原生C API
- VIM
配置远程连接
配置mysql允许远程连接的方法默认情况下,mysql只允许本地登录,如果要开启远程连接,则需要修改/etc/mysql/my.conf文件。
一、修改/etc/mysql/my.conf
找到bind-address = 127.0.0.1这一行
改为bind-address = 0.0.0.0即可
二、为需要远程登录的用户赋予权限
1、新建用户远程连接mysql数据库
grant all on *.* to admin@'%' identified by '123456' with grant option; flush privileges;
允许任何ip地址(%表示允许任何ip地址)的电脑用admin帐户和密码(123456)来访问这个mysql server。注意admin账户不一定要存在。
2、支持root用户允许远程连接mysql数据库
grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;
flush privileges;
修改完后重启mysql服务
sudo systemctl restart mysqld
演示连接demo
编译运行
查找依赖的头文件
mysql_config --include
建立.so库的软连接,供可执行文件调用
sudo ln -s /usr/local/mysql/lib/libmysqlclient.so.20 /usr/lib/
编译
gcc -o test_mysql test_mysql.c -I/usr/local/mysql/include -L/usr/local/mysql/lib/ -lmysqlclient
结果
liangjf@ubuntu:~/study/mysql$ ./test_mysql
共9个记录,每个记录3字段
id name phone
1 aaa 7774090
2 abc 7774099
3 acb 7794099
4 bcb 8794099
5 bcc 8894099
6 qwe 8494099
7 azq 6544099
8 njhu 8544099
9 ert 1544099
出现的问题:
fatal error: mysql/plugin_auth_common.h
查找是有这个问题,但是编译失败,证明是编译时指定的mysql/include路径错误了
liangjf@ubuntu:~/study/mysql$ sudo find / -name plugin_auth_common.h
/usr/local/mysql-5.7.9-linux-glibc2.5-x86_64/include/mysql/plugin_auth_common.h
/usr/local/mysql-5.6.27-linux-glibc2.5-x86_64/include/mysql/plugin_auth_common.h
/usr/include/mysql/mysql/plugin_auth_common.h
一开始我用的是第三个路径,这个路径是错的,后来用了第一个路径就ok了。
出现一大叠错误,看起来就是连接mysqlclient库失败了。
失败的原因肯定是指定的路径有问题,
liangjf@ubuntu:~/study/mysql$ sudo find / -name libmysqlclient.so
/usr/local/mysql-5.7.9-linux-glibc2.5-x86_64/lib/libmysqlclient.so
/usr/local/mysql-5.6.27-linux-glibc2.5-x86_64/lib/libmysqlclient.so
/usr/lib64/mysql/libmysqlclient.so
最初我用的路径是/usr/lib64/mysql/
,后来选用/usr/local/mysql-5.7.9-linux-glibc2.5-x86_64/lib/
就编译ok了。
执行可执行文件失败。
liangjf@ubuntu:~/study/mysql$ ./test_connect
./test_connect: error while loading shared libraries: libmysqlclient.so.20: cannot open shared object file: No such file or directory
编译时可以找到动态库,而执行时木有,是因为我的mysql的lib是单独安装,没有加进去环境变量中。两种解决办法:
- 把
/usr/local/mysql-5.7.9-linux-glibc2.5-x86_64/lib/
加入环境变量中 - 把
/usr/local/mysql-5.7.9-linux-glibc2.5-x86_64/lib/libmysqlclient.so.20
拷贝到/usr/lib中。因为这个路径是可执行文件去自动查找动态库的路径。
linux C API连接并查询mysql5.7.9的更多相关文章
- linux shell脚本连接oracle查询数据插入文件和日志文件中
#!/bin/sh sqlplus "用户名/密码@数据库"<<EOF 或者只有一个库的 :sqlplus "用户名/密码"<<EOF ...
- C++连接mysql的两种方式(ADO连接和mysql api连接)
一.ADO连接mysql 1.安装mysql-5.5.20-win32.msi和mysql-connector-odbc-5.3.4-win32.msi(一般两个安装程序要匹配,否则可能连接不上) ...
- C API 连接MySQL及批量插入
CMySQLMgr.h: #ifndef _CMYSQLMGR_H_ #define _CMYSQLMGR_H_ #include <iostream> #include "my ...
- Linux系统下连接校园网Drcom客户端教程(广东工业大学)
这篇教程写给想要学习Linux系统或者在Linux系统下有需要使用Drcom上网的同学,在我疯狂踩坑,经过n多次的刷机装机实验,体验不同发行版本的linux系统后,终于懂得怎么连接上drcom,想想连 ...
- (转)CentOS/Linux 解决 SSH 连接慢
CentOS/Linux 解决 SSH 连接慢 原文:http://blog.csdn.net/doiido/article/details/43793391 现在连接linux服务器一般都是使用SS ...
- 转载: CentOS/Linux 解决 SSH 连接慢
CentOS/Linux 解决 SSH 连接慢 现在连接Linux服务器一般都是使用SSH远程连接的方式.最近新装了一台服务器,发现telnet时速度很快,ping时一切也正常,但SSH连接的时候却很 ...
- Linux下使用fstatfs/statfs查询系统相关信息
Linux下使用fstatfs/statfs查询系统相关信息 1. 功能 #include < sys/statfs.h > int statfs(const char *path, ...
- linux安装常用软件和查询基本信息
linux安装常用软件和查询基本信息 1. 安装常用软件 [ ...
- Netruon 理解(11):使用 NAT 将 Linux network namespace 连接外网
学习 Neutron 系列文章: (1)Neutron 所实现的虚拟化网络 (2)Neutron OpenvSwitch + VLAN 虚拟网络 (3)Neutron OpenvSwitch + GR ...
随机推荐
- MinDos--操作系统
MinDos--操作系统 总结 : 本次实现的是功能是为 (1)自行定义系统提示符 (2)自定义命令集(8-10个) (3)用户输入HELP以查找命令的帮助 (4)列出命令的功能,区分内部还是外部命令 ...
- [Selenium]Turn Page By Scroll Bar
Description: Need to turn page by operating scroll bar and find out the element in the current page. ...
- python二叉树染色-有严重BUG
#coding:utf-8 ''' 二叉树涂黑 输入: 5 2 1 -1 4 2 -1 5 4 -1 3 1 1 2 输出: 3 第二题是:斗地主 ''' import sys b=list() cl ...
- tp5主从数据库设置读写分离
// 数据库类型 'type' => 'mysql', // 服务器地址 'hostname' => '192.168.0.5,192.168.0.6', // 数据库名 'databas ...
- line-height:150% 和 line-height:1.5
line-height属性的细节与大多数CSS属性不同,line-height支持属性值设置为无单位的数字.有无单位在子元素继承属性时有微妙的不同. 有单位(包括百分比)与无单位之间的区别有单位时,子 ...
- SDWebImage从缓存中获取图片
if ([[SDImageCache sharedImageCache] imageFromKey:sort.imageUrl]) { [cell.photoImageView s ...
- JoinMap
#include <iostream> #include <fstream> using namespace std; #include <opencv2/core/co ...
- (广搜)Catch That Cow -- poj -- 3278
链接: http://poj.org/problem?id=3278 Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 6211 ...
- Android 4.3实现类似iOS在音乐播放过程中如果有来电则音乐声音渐小铃声渐大的效果
目前Android的实现是:有来电时,音乐声音直接停止,铃声直接直接使用设置的铃声音量进行铃声播放. Android 4.3实现类似iOS在音乐播放过程中如果有来电则音乐声音渐小铃声渐大的效果. 如果 ...
- 搬家至独立博客 https://www.imzjy.com/blog/
欢迎访问 https://www.imzjy.com/blog/