安装配置erlang_db_driver
erlang-db-driver是北京融易通公司开源的一个erlang支持众多数据库的一个驱动类库,据其wiki介绍,其支持MySQL, Oracle, Sybase, DB2 and Informix,功能不可不说强劲。
公司的业务支持oracle,使用的是odbc方法,为了提高性能,特转换为使用erlang-db-driver。在使用的过程中,遇到了很多问题,不过通过邮件跟融易通公司的工程师联系,得到了他们的快速回复,解决了不少问题。本文是集合了我们联系的邮件而形成的一个概括文档。如果你们在使用erlang-db-driver有问题,不妨给他们发邮件,他们是很乐意解决你们的问题的。
1.安装Oracle Database Instant Client
在oracle客户端类库中下载安装需要的类库,其中必须的是Basic、devel2个文件。也可以安装SQL PLUS文件,可以通过命令行来连接oracle服务器。
2.链接动态类库
安装的类库在/usr/lib,要使我们的程序连接到oracle类库,我们要执行下面命令:
cd /usr/lib/oracle/12.1/client/lib
pwd >> /etc/ld.so.conf
ldconfig
设置环境变量
export ORACLE_HOME=/usr/lib/oracle/12.1/client
第2步到现在,基于一个假设,即oracle的客户端和服务器端是在不同的主机上的。
如果oracle的客户端和服务器端是在相同的主机上的,可以设置erlang-db-driver里面的build/oracle.config文件。
yum install git doxygen graphviz
下载erlang-db-driver
git clone https://github.com/denglf/erlang-db-driver
编译安装:
cd erlang-db-driver
./configure --with-oracle
make
make docs
make installl
至此,erlang-db-driver安装完毕。
4.配置tnsnames.ora文件
配置tnsnames.ora跟odbc连接oracle的方式很像。
oracle的连接配置在配置文件中
$ORACLE_HOME/network/admin/tnsnames.ora
内容如下:
MY_DB_CONNECTION =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.95)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = XE)
)
)
EXTPROC_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
)
(CONNECT_DATA =
(SID = PLSExtProc)
(PRESENTATION = RO)
)
)
sqlplus SYSTEM/@192.168.0.95:/XE
连接参数如下:
[
{default_pool, true},
{table_info, true},
{driver, oracle},
{host, ""},
{port, 1521},
{user, "SYSTEM"},
{password, "123456"},
{database, "MY_DB_CONNECTION"}, %% 这里是配置文件里所配的名称
{poolsize, 8}]
erl
>db_app:start().
>ConnArg = [
{default_pool, true},
{table_info, true},
{driver, oracle},
{host, ""},
{port, },
{user, "SYSTEM"},
{password, ""},
{database, "MY_DB_CONNECTION"},
{poolsize, }].
> db_app:add_pool(xell, ConnArg).
这样就可以连接oracle数据库了。
5.在64位系统下找不到erlang_interface
上面使用的系统的是32位的centos,如果是64位的系统,要使用下面的命令来规避这个问题。
cd /usr/local/lib64 && ln -s /usr/local/lib/erlang .
可以看这里了解这个问题。
6.插入日期数据。
假设有个简单表,ss表定义只有date数据类型
CREATE TABLE ss (
toptime date NOT NULL
);
可以使用下面的语句插入数据:
db_app:execute_sql("insert into ss(toptime) values( to_date('2013-12-5 10:3:9', 'YYYY-MM-DD HH24:MI:SS'))").
也可以这样:
db_app:insert(ss, [{toptime,{"datetime", {{2013, 12, 5}, {2,3,4}}}}]).
安装配置erlang_db_driver的更多相关文章
- Hive安装配置指北(含Hive Metastore详解)
个人主页: http://www.linbingdong.com 本文介绍Hive安装配置的整个过程,包括MySQL.Hive及Metastore的安装配置,并分析了Metastore三种配置方式的区 ...
- Hive on Spark安装配置详解(都是坑啊)
个人主页:http://www.linbingdong.com 简书地址:http://www.jianshu.com/p/a7f75b868568 简介 本文主要记录如何安装配置Hive on Sp ...
- ADFS3.0与SharePoint2013安装配置(原创)
现在越来越多的企业使用ADFS作为单点登录,我希望今天的内容能帮助大家了解如何配置ADFS和SharePoint 2013.安装配置SharePoint2013这块就不做具体描述了,今天主要讲一下怎么 ...
- Hadoop的学习--安装配置与使用
安装配置 系统:Ubuntu14.04 java:1.7.0_75 相关资料 官网 下载地址 官网文档 安装 我们需要关闭掉防火墙,命令如下: sudo ufw disable 下载2.6.5的版本, ...
- redis的安装配置
主要讲下redis的安装配置,以及以服务的方式启动redis 1.下载最新版本的redis-3.0.7 到http://redis.io/download中下载最新版的redis-3.0.7 下载后 ...
- Windows环境下的NodeJS+NPM+Bower安装配置
npm作为一个NodeJS的模块管理,之前我由于没有系统地看资料所以导致安装配置模块的时候走了一大段弯路,所以现在很有必要列出来记录下.我们要先配置npm的全局模块的存放路径以及cache的路径,例如 ...
- ubuntu kylin 14.04安装配置MongoDB v2.6.1(转)
1.获取最新版本 https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-2.6.1.tgz 2.解压并进入bin目录 tar zxvf mongo ...
- Django基础之安装配置
安装配置 一 MVC和MTV模式 著名的MVC模式:所谓MVC就是把web应用分为模型(M),控制器(C),视图(V)三层:他们之间以一种插件似的,松耦合的方式连接在一起. 模型负责业务对象与数据库的 ...
- 【转】Windows平台下的Subversion安装配置新手指南
原文地址:http://developer.51cto.com/art/201005/199628.htm 本文介绍Subversion安装配置快速指南,首先讲Subversion的安装和配置,Uni ...
随机推荐
- PHP中计算字符串相似度的函数代码
similar_text — 计算两个字符串的相似度 int similar_text ( string $first , string $second [, float &$percent ...
- kali aquatone安装
https://www.jianshu.com/p/418eedb9d9c8
- python2和python3的一些区别
性能:py3.x起始比py2.x效率低,但是py3.x有极大的优化空间,效率正在追赶. 编码:py3原码文件默认utf-8编码,使得变量名更为广阔. 语法:1,去除了 <> ,改用了 ...
- Scala快速入门到精通 视频教程 百度云网盘下载地址
Scala快速入门到精通 视频教程 百度云网盘下载地址 Scala快速入门到精通 下载地址链接:https://pan.baidu.com/s/1bqGIKyF 密码:ojwd
- MySQL入门第三天(上)——函数与视图
一.MySQL函数 同样的,完整的函数可以参照开源中国的手册:http://tool.oschina.net/apidocs/apidoc?api=mysql-5.1-zh 1.字符函数 CONCAT ...
- Prism for WPF 搭建一个简单的模块化开发框架(六)隐藏菜单、导航
原文:Prism for WPF 搭建一个简单的模块化开发框架(六)隐藏菜单.导航 这个实际上是在聊天之前做的,一起写了,也不分先后了 看一下效果图,上面是模块主导航,左侧是模块内菜单,现在加一下隐藏 ...
- Netty示例
一,服务端 ** * 测试Netty类库:服务端代码 * Created by LiuHuiChao on 2016/10/24. */ public class NettyServerTest { ...
- 2038: [2009国家集训队]小Z的袜子(hose)
2038: [2009国家集训队]小Z的袜子(hose) Time Limit: 20 Sec Memory Limit: 259 MBSubmit: 9472 Solved: 4344 Desc ...
- ROS(二)Service通信
使用自定义的消息类型,实现service方式的节点间双向通信 在package目录下创建msg和srv目录,存放package需要使用的.msg和.srv文件. 在ROS中,message被设计为一种 ...
- What is the reason that a likelihood function is not a pdf?
From: http://stats.stackexchange.com/questions/31238/what-is-the-reason-that-a-likelihood-function-i ...