文档章节

在linux下连接MySQL

Kevin6188
 Kevin6188
发布于 2014/03/11 12:54
字数 602
阅读 122
收藏 0

    以前说过在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);

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


© 著作权归作者所有

Kevin6188

Kevin6188

粉丝 27
博文 15
码字总数 10947
作品 7
房山
程序员
私信 提问
分布式架构3--CentOs下安装MySQL(环境准备)

声明:因为运行环境是基于Linux系统的,在做此框架之前需要做一些前期的环境准备工作 CentOs下安装MySQL网上很多实例,因为博客后期作为框架的原生教程,故这边做详细的安装记录,我这边已经...

明理萝
2018/07/19
19
1
Redis、Jmeter、MySQL的那些事

前言 毕业答辩告一段落,接下来好好努力工作。 Redis遇到的一些问题 这是redis的保护机制,连接redis只能是127.0.0.1这个ip,我们远程连接是拒绝的。所以我们需要在redis.conf进行如下配置。...

cmazxiaoma
2018/05/30
0
0
ImportError: No module named MySQLdb

ImportError: No module named MySQLdb 该错误是源于我们没有安装Python连接MySQL所需的MySQLdb库而引起。 MySQL是最流行的开源数据库之一,但在Python标准库中并没有集成MySQL接口程序,MyS...

netmouse
2014/10/17
114
0
Linux环境下安装配置Mysql

首先我们的使用的是linux的 centOS6 版本 安装mysql: 1、查看有没有安装包 yum list mysql* 2、进行安装mysql:一般我们在服务器端安装的都是服务端( mysql) yum install mysql-server或者...

糖拌西红柿
2018/08/05
0
0
Atomikos管理oracle和mysql出现访问mysql异常问题

基本情况:tomcat部署在linux,数据库有两个,一个是oracle(部署在linux),另一个是mysql(部署在windows),通过Atomikos建立数据库连接池,程序中有一部分模块访问oracle,一个部分访问m...

ToEast
2016/09/09
476
2

没有更多内容

加载失败,请刷新页面

加载更多

采坑指南——k8s域名解析coredns问题排查过程

正文 前几天,在ucloud上搭建的k8s集群(搭建教程后续会发出)。今天发现域名解析不了。 组件版本:k8s 1.15.0,coredns:1.3.1 过程是这样的: 首先用以下yaml文件创建了一个nginx服务 apiV...

码农实战
6分钟前
1
0
【2019年8月版本】OCP 071认证考试最新版本的考试原题-第6题

choose three Which three statements are true about indexes and their administration in an Orade database? A) An INVISIBLE index is not maintained when Data Manipulation Language......

oschina_5359
8分钟前
1
0
阿里巴巴开源 Dragonwell JDK 最新版本 8.1.1-GA 发布

导读:新版本主要有三大变化:同步了 OpenJDK 上游社区 jdk8u222-ga 的最新更新;带来了正式的 feature:G1ElasticHeap;发布了用户期待的 Windows 实验版本 Experimental Windows version。...

阿里巴巴云原生
14分钟前
1
0
教你玩转Linux—磁盘管理

Linux磁盘管理好坏直接关系到整个系统的性能问题,Linux磁盘管理常用三个命令为df、du和fdisk。 df df命令参数功能:检查文件系统的磁盘空间占用情况。可以利用该命令来获取硬盘被占用了多少...

xiangyunyan
16分钟前
3
0
js 让textarea的高度自适应父元素的高度

textarea按照普通元素设置height是没有作用的,可以这么来设置, 下面给上一段项目代码 JS代码: $.fn.extend({ txtaAutoHeight: function () { return this.each(function () {...

文文1
17分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部