Linux下配置数据源
将ograc提供的ODBC驱动(libogodbc.so)配置到数据源中便可使用。配置数据源需要配置“odbc.ini”和“odbcinst.ini”两个文件(在编译安装unixODBC过程中生成且默认放在“/usr/local/etc”目录下),并在服务器端进行配置。
操作步骤
获取unixODBC源码包。
要求unixODBC版本不低于2.3.6。以unixODBC-2.3.6版本为例,获取地址:http://www.unixodbc.org/unixODBC-2.3.6.tar.gz
安装unixODBC。如果机器上已经安装了低版本的unixODBC,应先卸载或直接覆盖安装。
以unixODBC-2.3.6版本为例,在客户端执行如下命令安装unixODBC。默认安装到“/usr/local”目录下,生成数据源文件到 “/usr/local/etc”目录下,库文件生成在“/usr/local/lib”目录。
shelltar zxvf unixODBC-2.3.6.tar.gz cd unixODBC-2.3.6 ./configure --enable-gui=no make #安装可能需要root权限 make install替换客户端odbc驱动程序。
将ograc提供的ODBC驱动libogodbc.so复制到“/usr/local/lib”目录下,查看是否完整。
shellldd /usr/local/lib/libogodbc.so配置数据源。
配置ODBC驱动文件。
在“/usr/local/etc/odbcinst.ini”文件中追加以下内容。
shell[OgracMPP] Driver64=/usr/local/lib/libogodbc.so setup=/usr/local/lib/libogodbc.soodbcinst.ini文件中的配置参数说明如表1所示。
表 1 odbcinst.ini文件配置参数
配置数据源文件。
在“/usr/local/etc/odbc.ini”文件中追加以下内容。
shell[OgracDB] Driver=OgracMPP Servername=127.0.0.1 Port=1611 Username=test Password=test123odbc.ini文件配置参数说明如表2所示。
表 2 odbc.ini文件配置参数
其中关于sslmode的选项的允许值,具体信息见下表:
表 3 sslmode的可选项及其描述
必须使用SSL安全连接,在verify-ca的验证范围之外,同时验证数据库所在主机的主机名是否与证书内容一致。openGauss不支持此模式。
SSL模式的用法。
生成服务器证书。
在安装数据库的服务器上进行如下操作:
shell#在主机生成CA证书ca.crt和私钥ca.key openssl req -newkey rsa:3072 -passout pass:12345678 -keyout ca.key -x509 -days 365 -out ca.crt -subj "/C=CN/ST=BJ/O=huawei/OU=huawei/CN=CA/emailAddress=123456@xxx.com" #在主机生成私钥mes.key和证书请求mes.csr openssl req -newkey rsa:3072 -nodes -keyout mes.key -out mes.csr -subj "/C=CN/ST=BJ/L=BJ/O=huawei/OU=huawei/CN=Server/emailAddress=123456@xxx.com" #在主机生成证书mes.crt openssl x509 -req -days 365 -in mes.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out mes.crt服务器参数配置
在安装数据库的服务器上创建一个目录/opt/ograc/data,将生成的证书ca.crt、ca.key、ca.srl、mes.crt、mes.csr、mes.key都放到该目录下,修改文件夹和证书的权限:
shell#修改文件夹权限,其中ogracdba为数据库安装用户 chmod 700 /opt/ograc/data chown ogracdba:ogracdba /opt/ograc/data #修改证书权限 chmod 400 /opt/ograc/data/* chown ogracdba:ogracdba /opt/ograc/data/*添加ssl参数,开启数据库ssl模式。
shell#登录数据库 ogsql test/test123@127.0.0.1:1611 -q #执行如下sql添加参数 alter system set SSL_CA = '/opt/ograc/data/ca.crt'; alter system set SSL_CERT = '/opt/ograc/data/mes.crt'; alter system set SSL_KEY='/opt/ograc/data/mes.key'; #重启数据库 cms res -stop db cms res -start db重启之后执行sql命令:show parameter ssl,如果查询结果HAVE_SSL的值为TRUE,则说明SSL功能成功打开。
ODBC客户端配置SSL连接。
在ODBC所在客户端机器上任意创建一个目录/usr/test/certificate,使用scp将服务端生成的ca.crt传到ODBC所在客户端机器上,执行如下操作:
shellmkdir -p /usr/test/certificate cd /usr/test/certificate scp root@xxx.xxx.xx.xx:/opt/ograc/data/ca.crt .在客户端上生成私钥client.key和证书请求client.csr:
shellopenssl req -newkey rsa:3072 -nodes -keyout client.key -out client.csr -subj "/C=CN/ST=BJ/L=BJ/O=huawei/OU=huawei/CN=Server/emailAddress=123456@xxx.com"使用scp将client.csr传到数据库所在的服务器上/opt/ograc/data路径下:
shellscp client.csr root@xxx.xxx.xx.xx:/opt/ograc/data/生成客户端证书。
在数据库所在服务器的/opt/ograc/data路径下生成证书client.crt,并传到客户端机器上:
shellcd /opt/ograc/data openssl x509 -req -days 365 -in client.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out client.crt将证书传到客户端机器上。
将生成的证书client.crt传到客户端机器上:
shellcd /usr/test/certificate scp root@xxx.xxx.xx.xx:/opt/ograc/data/client.crt .客户端ODBC参数配置
给证书添加权限:
shellchmod 400 /usr/test/certificate/*在文件odbc.ini中添加参数:
shellsslca=/usr/test/certificate/ca.crt sslcert=/usr/test/certificate/client.crt sslkey=/usr/test/certificate/client.key sslmode = VERIFY_CA
在客户端配置环境变量。
shellvim ~/.bashrc在配置文件中追加以下内容。
shellexport PATH=/usr/local/bin:$PATH export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH执行如下命令使设置生效。
shellsource ~/.bashrc注册驱动。
shellodbcinst -i -d -f /usr/local/etc/odbcinst.ini
测试数据源配置
安装后使用isql命令进行连接验证,执行 isql OgracDB -v test test123 命令 。
如果显示如下信息,表明配置正确,连接成功。
shell+---------------------------------------+ | Connected! | | | | sql-statement | | help [tablename] | | quit | | | +---------------------------------------+ SQL>若显示ERROR信息,则表明配置错误。请检查上述配置是否正确。