达梦8使用unix domain socket连接数据库

达梦8使用unix domain socket连接数据库

达梦8数据库缺省是不产生socket文件的,需要修改dm.ini中的一个参数,UNIX_SOCKET_PATHNAME,这个参数缺省是空串,这个参数是指定socket文件的路径和文件名的,指定一个dmdba有权限读写的路径+文件名,比如:

UNIX_SOCKET_PATHNAME=/home/dm/dm1.sock

重启数据库,这个文件就生成了,使用disql时,利用unix domain socket连接的用法是:

disql <username>/<password>@<unix domain socket filename>#{inet_type=UNIXSOCKET}

例如:

disql SYSDBA/SYSDBA@/home/dm/dm1.sock#{inet_type=UNIXSOCKET}

文档上说必须要加上#{inet_type=UNIXSOCKET},实测似乎没有这部分也能正常连接。

如果使用JDBC连接数据库,需要额外的jar包,达梦的jdbc driver会引用junixsocket的一些功能,需要去github下载。

我使用的的是2.4.0版本:https://github.com/kohlschutter/junixsocket/releases/download/junixsocket-parent-2.4.0/junixsocket-dist-2.4.0-bin.zip

解开这个压缩包,将 junixsocket-native-common-2.4.0.jar 和

junixsocket-common-2.4.0.jar 加入到CLASSPATH

在使用java程序连接数据库时,连接串的写法:

jdbc:dm://?unixSocketFile=/home/dm/dm1.sock

Comments are closed.