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]