python远程连接timesten


前言

最近用到python去远程连接timesten,面向百度编程嘛,首先肯定是想找现成的了。不过找了一圈没找到详细说怎么实现的,找到的比较有帮助的是这里:
https://stackoverflow.com/questions/7982224/python-access-to-timesten
然后捣鼓了几天搞好了,记录下。


一、服务器上的配置

服务器的环境是Centos7 64位操作系统。timesten已经安装在服务器上,安装包是tiemsten112280.linux8664.tar。用户和表都已经建好,用户名密码是test,test,dsn是tt_1122,服务器IP是192.168.1.151,timesten启用的端口是12897(默认启用的端口是53397)。下面为服务器上的表中数据:
在这里插入图片描述
python连接timesten,需要用到timesten客户端和python的ox_oracle模块。下面分别在windows平台上和linux平台上进行尝试,python版本都是3.7。

二、Win10上的配置

1. timesten的客户端的安装和配置

安装timesten的客户端最好是和服务器同一版本,服务器上安装的是112280,这边的客户端用的安装包是timesten112280.win64.zip。安装过程没什么好说的,一直下一步就行,在这台机器上我只安装了64位的client,没有安装32位的client也没有安装sever。
安装好之后就可以进行数据源的配置了。在运行栏中搜索ODBC就出来了如下图:
在这里插入图片描述
在数据源管理器中选“添加”,就可看到刚安装好的timesten驱动了。
在这里插入图片描述
在创建新数据源界面选“完成”之后弹出timesten客户端配置界面。
在这里插入图片描述
在timesten客户端配置界面首先配置服务,即下图的”Servers”:
在这里插入图片描述
再在弹出的服务列表窗口选“add“添加:
在这里插入图片描述
在弹出的服务配置窗口填上服务器的IP地址、端口、服务名“tt_client_151“,这个名称一会要用到。配置完成之后回到timesten客户端配置界面。
在这里插入图片描述
在timesten客户端配置界面的Server Name or Network Address栏选择刚才配置的服务名称,按“Refresh“会自动刷出来Server DSN名称TT_1122。再配置好用户名和密码,给Client DSN起名tt_test,python连接用的就是这个Client DSN。
在这里插入图片描述
配置好之后点下面的Test Oracle TimesTen Server Connection,提示全部成功则配置结束。
在这里插入图片描述
配置结束之后可以在ODBC数据源中看到刚才配置的tt_test。
在这里插入图片描述
在cmd界面尝试连接:
在这里插入图片描述

2. cx_oracle的安装配置

使用pip在线安装的方式安装,如下图:
在这里插入图片描述
安装完毕就可以运行了,代码和结果如下图:
在这里插入图片描述
代码如下:

# encoding:utf-8

import cx_Oracle

def test_timesten_cs():
    dsn_tns = '(DESCRIPTION=(CONNECT_DATA = (SERVICE_NAME = tt_test)(SERVER = timesten_client)))'
    try:
        conn = cx_Oracle.connect(
            'test',
            'test',
            dsn_tns
        )
    except Exception as e:
        print(e)
        return

    cur = conn.cursor()
    try:
        x = cur.execute('select * from tabletest')
        for re in x:
            print(re)
    except Exception as e:
        print(e)
        return

    cur.close()
    conn.close()

if __name__=="__main__":
    test_timesten_cs()

主要是这句连接字符串,这是用client的方式连接:

dsn_tns = '(DESCRIPTION=(CONNECT_DATA = (SERVICE_NAME = tt_test)(SERVER = timesten_client)))'

如果是要连接本机的服务端的话可以用直接连接的方式:

dsn_tns = '(DESCRIPTION=(CONNECT_DATA = (SERVICE_NAME = tt_1122)(SERVER = timesten_direct)))'

三.linux上的配置

这里使用linux平台是Centos7 64位版本。同样的,linux下python连接timesten要用到timesten客户端、oracleclient客户端和cx_oracle模块。

1. timesten的客户端的安装和配置

timesten的客户端还是选择和服务器安装的版本一致,安装过程也比较简单,安装前用超级用户做以下几件事:
mkdir /etc/TimesTen #创建/etc/TimesTen文件夹
groupadd ttadmin #添加用户组ttadmin
chgrp -R ttadmin /etc/TimesTen #使ttadmin用户组拥有/etc/TimesTen权限
chmod 770 /etc/TimesTen/ #设置/etc/TimesTen权限(注意最后有/)
usermod -a -G ttadmin XXXX #将XXXX用户加入ttadmin用户组
然后注销一次重新登录之后再进行安装。
安装的时候也是一直回车即可,略。
安装完成之后需要配置客户端,linux下的配置比较简单,修改timesten目录下的两个文件,各添加一个节点就可以了:
/home/ XXXX/TimesTen/tt1122/info/sys.odbc.ini
/home/XXXX/TimesTen/tt1122/info/sys.ttconnect.ini
在这里插入图片描述
配置完成使用ttisqlcs即可连接上服务器了,如下图所示。
在这里插入图片描述

2.oracleclient的客户端的安装和配置

下载oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm安装包,用超级用户安装:
rpm -ivh oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm
安装成功之后可以查看安装位置:
rpm -ql oracle-instantclient11.2-basic
在这里插入图片描述
接下来是配置环境变量,以超级用户在/etc/profile.d/下新建shell脚本文件,本例中新建文件名称为black.sh,内容如下:

export TT_HOME=/home/black/TimesTen/tt1122
export ORACLE_HOME=/usr/lib/oracle/11.2/client64/
export PATH=$ORACLE_HOME/bin:$TT_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$TT_HOME/lib:$LD_LIBRARY_PATH

在这里插入图片描述

配置完成重启。

3. cx_oracle的安装配置

和windows中安装一样,直接使用pip3安装就可以了,略。
完成准备工作之后就可以使用python连接timesten了,如下:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 要将Java与Oracle TimesTen集成,可以按照以下步骤进行操作: 1. 下载并安装Oracle TimesTen:在Oracle官方网站上下载TimesTen的最新版本,并按照说明进行安装。 2. 安装Java JDBC驱动程序:下载并安装TimesTen JDBC驱动程序,该驱动程序将使Java能够与TimesTen进行交互。 3. 在Java应用程序中使用JDBC连接到TimesTen:使用JDBC API编写Java代码,建立到TimesTen数据库的连接,并执行SQL查询和更新操作。 以下是示例代码,可以在Java中使用JDBC连接到TimesTen: ```java import java.sql.*; public class TimesTenJDBCExample { public static void main(String[] args) throws Exception { // Load the TimesTen JDBC driver Class.forName("com.timesten.jdbc.Driver"); // Establish a connection to the TimesTen database Connection conn = DriverManager.getConnection("jdbc:timesten:sampledb"); // Execute a SQL query Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery("SELECT COUNT(*) FROM mytable"); // Process the query results rs.next(); int count = rs.getInt(1); System.out.println("There are " + count + " rows in mytable"); // Close the database resources rs.close(); stmt.close(); conn.close(); } } ``` 在以上示例中,首先使用`Class.forName`方法加载TimesTen JDBC驱动程序,然后使用`DriverManager.getConnection`方法建立到名为“sampledb”的TimesTen数据库的连接。接下来,使用`Connection.createStatement`方法创建一个`Statement`对象,并使用该对象执行一个SQL查询。最后,使用`ResultSet`对象读取查询结果,并使用`close`方法关闭所有数据库资源。 请注意,以上代码仅为示例,并且应根据具体的需求进行修改。同时,建议在实际开发中使用连接池等技术来管理数据库连接。 ### 回答2: 要将Java与Oracle TimesTen集成,可以按照以下步骤进行操作: 1. 下载和安装Oracle TimesTen数据库:从Oracle官方网站上下载适合您操作系统的Oracle TimesTen数据库,并按照说明进行安装。 2. 配置Oracle TimesTen数据库:在安装完成后,打开TimesTen安装目录下的ttisql.tte文件,并创建新的数据存储路径。您可以使用ttisql命令来验证TimesTen数据库是否正确配置。 3. 下载和安装JDBC驱动程序:从Oracle官方网站上下载适合您所使用的Java版本和TimesTen数据库版本的JDBC驱动程序。将JDBC驱动程序的JAR文件添加到Java项目的类路径中。 4. 在Java代码中使用JDBC连接TimesTen数据库:在Java程序中使用JDBC API来连接和操作TimesTen数据库。例如,您可以使用java.sql包中的DriverManager类和Connection接口来创建数据库连接。 以下是一个简单的代码示例来演示连接到TimesTen数据库: ```java import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class TimesTenExample { public static void main(String[] args) { Connection connection = null; try { // 加载TimesTen驱动程序 Class.forName("com.timesten.jdbc.TimesTenDriver"); // 创建数据库连接 String url = "jdbc:timesten:direct:dsn=<your_dsn>"; String username = "<your_username>"; String password = "<your_password>"; connection = DriverManager.getConnection(url, username, password); // 在这里可以执行其他数据库操作 // 关闭数据库连接 connection.close(); } catch (ClassNotFoundException | SQLException e) { e.printStackTrace(); } } } ``` 请确保替换代码中的<your_dsn>、<your_username>和<your_password>为实际的TimesTen数据库连接信息。 通过以上步骤,您就可以将Java与Oracle TimesTen集成,并使用JDBC来连接和操作TimesTen数据库

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值