I am trying to connect to teradata database using jaydebeapi package.
conn = jaydebeapi.connect('com.teradata.jdbc.TeraDriver',
['jdbc:teradata://ip/TMODE=ANSI,CHARSET=utf8', 'username', 'password'],
['/teradata/tdgssconfig.jar',
'/terajdbc4.jar'])
Error while execution:
TERAJDBC4 ERROR [main] com.teradata.jdbc.jdk6.JDK6_SQL_Connection@3d1a70a7 Connection to <ip_address> Wed Oct 07 13:47:29 IST 2015 socket orig=<ip_address> cid=22f79598 sess=0 java.net.SocketTimeoutException: connect timed out at java.net.PlainSocketImpl.socketConnect(Native Method) at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339) at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200) at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182) at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) at java.net.Socket.connect(Socket.java:579) at com.teradata.jdbc.jdbc_4.io.TDNetworkIOIF$ConnectThread.run(TDNetworkIOIF.java:1216)
Traceback (most recent call last):
File "test_teradata.py", line 32, in <module>
teradataconn()
File "test_teradata.py", line 26, in teradataconn
'/home/abhishek/git/dblore/code/lib/teradata/terajdbc4.jar'])
File "/usr/local/lib/python2.7/dist-packages/jaydebeapi/__init__.py", line 359, in connect
jconn = _jdbc_connect(jclassname, jars, libs, *driver_args)
File "/usr/local/lib/python2.7/dist-packages/jaydebeapi/__init__.py", line 183, in _jdbc_connect_jpype
return jpype.java.sql.DriverManager.getConnection(*driver_args)
jpype._jexception.SQLExceptionPyRaisable: java.sql.SQLException: [Teradata JDBC Driver] [TeraJDBC 15.00.00.20] [Error 1277] [SQLState 08S01] Login timeout for Connection to <ip_address> Wed Oct 07 13:47:29 IST 2015 socket orig=<ip_address> cid=22f79598 sess=0 java.net.SocketTimeoutException: connect timed out at java.net.PlainSocketImpl.socketConnect(Native Method) at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339) at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200) at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182) at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) at java.net.Socket.connect(Socket.java:579) at com.teradata.jdbc.jdbc_4.io.TDNetworkIOIF$ConnectThread.run(TDNetworkIOIF.java:1216)
I use the following code to connect to a Teradata DB, it works with several servers and databases.
import jaydebeapi
server=192.168.3.4
database=dbc
user=dbc
password=dbc
# from TD JDBC readme.txt
jclassname='com.teradata.jdbc.TeraDriver'
# from TD Studio jdbc:<subprotocol>://<server>:<port>/<database>
url='jdbc:teradata://'+server+'/'+database
# driver args contains the arguments passed to java: DriverManager.getConnections(...)
driver_args=[url,user,password]
# my jars are in CLASSPATH environment variable, if not then put the paths to them into a list, e.g.: jars=[r'C:\Program Files\Teradata\TeraJDBC\terajdbc4.jar;C:\Program Files\Teradata\TeraJDBC\tdgssconfig.jar']
jars=None
jaydebeapi.connect(jclassname,driver_args,jars)
Comparing with your code I only see ip (replacing your real IP address, I guess) in your url, do you also have added the database name there to the path? If not, the problem might be there.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With