您现在的位置是:首页 > 正文

linux连接到mysql,在linux下连接MySQL

2024-04-01 01:33:02阅读 3

以前说过在Linux下访问SQL Server数据库,今天讲讲如何访问MySQL数据库,访问的方式仍然是具备良好移植性的ODBC接口。在这里ODBC驱动使用的是mysql-connector-odbc 5.2.6版本。

开始安装!(如果你已经安装过了某些库,就略过相应的步骤)

1,从unixODBC官网(www.unixodbc.org)下载2.3.2版本

./configure --enable-gui=no ; make ; sudo make install

注意,如果机器上安装了多个unixODBC,一定要正确配置LD_LIBRARY_PATH,使你新安装的库在前面,否则会报奇怪的找不到数据源的问题,因为你的程序很可能连接的是老的unixODBC库,导致实际读取的odbc.ini文件并不是你实际修改的那个。

可以通过odbcinst -j命令来查询实际使用的配置文件。

2,安装libiconv,./configure ; make ; sudo make install

3,安装mysql-connector-odbc,

export MYSQL_INCLUDE_DIR=/usr/local/mysql/include

export MYSQL_LIB_DIR=/usr/local/mysql/lib

export MYSQL_DIR=/usr/local/mysql

cmake . \

-DWITH_UNIXODBC=1 \

-DODBC_INCLUDES=/usr/local/include \

-DODBC_LIB_DIR=/usr/local/lib

make

sudo make install

注意:WITH_UNIXODBC参数必须加,否则默认就去找MyODBC的头文件和库了。

开始配置!

在/usr/local/etc下有两个关键的配置文件,odbcinst.ini,odbc.ini,分别先说明配置文件的作用,odbcinst.ini用于定义ODBC驱动,odbc.ini用于定义ODBC数据源。

odbcinst.ini中定义如下:

[mysql]

Driver=/usr/local/lib/libmyodbc5a.so

SETUP=/usr/local/lib/libmyodbc5a.so

UsageCount=1

odbc.ini中定义如下:

[TESTDSN2]

Description = MySQL test database

Trace = On

TraceFile = stderr

Driver = mysql

SERVER = 192.168.1.14

USER = cutscreen

PASSWORD = cutscreen#match

PORT = 3306

DATABASE = images

socket = /tmp/mysql.sock

charset = GBK

注意:charset用于指明数据库实例的编码方式,如果数据库实例的编码为UTF-8,那就要修改这个参数。

测试连接: isql -v TESTDSN2

在程序中,就可以使用下面的连接串进行访问,如下:DSN=TESTDSN2。

在实际使用中,我采用OTL(对ODBC的访问接口进行了封装)的API,这样能使代码更加简单一些,在引用otlv4.h头文件前需要加入下面几个宏,

#define OTL_ODBC // Compile OTL 4/ODBC. Uncomment this when used with MS SQL 7.0/ 2000

#define OTL_ODBC_UNIX // Compile OTL 4 / ODBC. Uncomment this when used in Linux / Unix

#define OTL_STL // Turn on STL features

这样,就可以在代码中使用otl_connect进行访问了,简单的实例代码如下:

const char * dsn_string("DSN=TESTDSN2");

otl_connect m_conn;

m_conn.rlogon(dsn_string,1);

后面就可以进行各种数据库操作了。

网站文章

  • RTL8201 以太网PHY芯片 调试记录

    RTL8201 以太网PHY芯片 调试记录

    RTL8201F PHY芯片 以太网芯片 调试记录

    2024-04-01 01:32:56
  • PAT A1043 Is It a Binary Search Tree(25 分)

     1043 Is It a Binary Search Tree(25 分)A Binary Search Tree (BST) is recursively defined as a binary tree which has the following properties:The left subtree of a node contains only nodes with ke...

    2024-04-01 01:32:51
  • 怎样分析服务器的内存溢出文件,线上系统内存溢出分析方法

    怎样分析服务器的内存溢出文件,线上系统内存溢出分析方法

    点击上方蓝字关注我们一、生产环境操作系统:CentOS6.7JDK版本:jdk1.6.0_45中间件版本:apache-tomcat-6.0.37JVM堆内存配置:-Xms8192m-Xmx8192m...

    2024-04-01 01:32:25
  • 5月份华为认证考试,100%通过率!最高分九百多!

    5月份华为认证考试,100%通过率!最高分九百多!

    考试是最能测试出一个人最近一段时间的学习状态和对知识的掌握度。不然也不会有十年磨一剑只为高考这个道理了。自从西宇教育获得Pearson VUE国际认证考试中心的授权开通了PVUE考试中心。每天来考试的...

    2024-04-01 01:32:17
  • Javascript滚动条翻页数据动态加载

    Javascript Ajax滚动条翻页数据动态加载

    2024-04-01 01:32:13
  • SpringSecurity-权限校验就是这么简单(1)-如何初始化及加载多个Filter

    可能之前会省略很多,我们先了解总的概念实现,无须从头看到尾去解决某个问题了(1)SpringSecurity针对某个请求会有不同的SecurityFilterChain,而里面会有好多过滤器;也就是说我们会针对不同的请求来设置添加不同的过滤器,此场景主要用于分类、分路径请求的情况。(2)就是说说如何往SecurityFilterChain中加入不同的Filter,及加入的过程方式、注意事项...

    2024-04-01 01:32:07
  • uboot 源码官方下载地址

    uboot 源码官方下载地址

    分类: 嵌入式     U-BOOT 移植过程详解:添加一块新板子的支持http://blog.csdn.net/linuxarmsummary/article/details/44836229  最近打算开始学习uboot,得好好加油。   U-Boot,全称 Universal Boot Loader,是遵循GPL条款的开放源码项目。从FADSROM、...

    2024-04-01 01:31:41
  • 2023 Chatgpt AI绘图小说推文项目

    2023 Chatgpt AI绘图小说推文项目

    打开最强大的AI绘画工具midjourney,它能根据你提供的描述,生成任何画面。现在,我们将根据小说中描述的场景、人物和元素,告诉GPT需要生成的描述词,然后将其翻译成英文。复制这个描述,并在mid...

    2024-04-01 01:31:30
  • 基础-JAVA集合类型主要区别

    1、List,Set,Map三者的区别 List 储存一组不唯一的,有序的对象 Set 不允许重复 Map 使用键值对存储 key不能重复 2、ArrayList和LinkedList的区别 相同之处...

    2024-04-01 01:31:05
  • MySQL之事务

    MySQL之事务

    2024-04-01 01:30:58