mryufeng 发表于 2013-1-28 17:17:39

Linux下Erlang使用UnixODBC连接数据库

erlang有个odbc的模块可以使用传统的数据库,配置步骤如下:

在ubuntu下首先安装这几个包:
apt-get -y install unixodbc unixodbc-bin libmyodbc

当然要先安装这几个包才能顺利编译erlang.

然后
cp /usr/share/libmyodbc/odbcinst.ini /etc/

然后
root@yufeng-desktop:~# cat /etc/odbc.ini   

Description =test
Driver = /usr/lib/odbc/libmyodbc.so
Server = localhost
Database = test
Port = 3306

unixODBC 有 2 個圖形化介面工具可以使用,分別是:
ODBCConfig
DataManager
运行它们 确保你的数据源可用。

再来验证下
root@yufeng-desktop:~# mysql
Welcome to the MySQL monitor.Commands end with ; or \g.
Your MySQL connection id is 48
Server version: 5.0.67-0ubuntu6 (Ubuntu)

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> select version();
+-----------------+
| version()       |
+-----------------+
| 5.0.67-0ubuntu6 |
+-----------------+
1 row in set (0.00 sec)

mysql> Aborted

如果都没有问题 成功一半了。
root@yufeng-desktop:/etc# erl
Erlang R13B (erts-5.7.1)

Eshell V5.7.1(abort with ^G)
1> application:start(odbc).
ok
2> {ok, Ref}=odbc:connect("DSN=MySQL-Test;UID=root;PWD=", [{trace_driver, on}]).
{ok,<0.42.0>}
3> odbc:sql_query(Ref, "select version();").
{selected,["version()"],[{"5.0.67-0ubuntu6"}]}
4> odbc:disconnect(Ref).
ok
5>

O yeah, 可以使用这些传统的数据了.

另外pstree看下:

├─sshd───sshd─┬─bash───beam.smp─┬─odbcserver───{odbcserver}
   │             │               └─5*[{beam.smp}]
   │             ├─bash───pstree
   │             └─bash───wget

也就是说odbc是作为一个OS进程运行的 这样保证了erl的稳定性。
页: [1]
查看完整版本: Linux下Erlang使用UnixODBC连接数据库