达梦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