在Python中连接jdbc格式的数据库url
我正在尝试写一个Python脚本,想要连接到一个数据库。这个数据库的主机网址是以jdbc格式给我的:
URL = jdbc:mysql://www.myurl.com:3306/
我不知道怎么把这个网址转换成Python能用的格式。
如果有人能帮忙,我会非常感激。谢谢!
import MySQLdb
conn = MySQLdb.connect(host="????",user="web3u4",passwd="password",db="web3db4")
cursor = conn.cursor ()
cursor.execute ("SELECT VERSION()")
row = cursor.fetchone ()
print "server version:", row[0]
cursor.close ()
# disconnect from server
db.close()
2 个回答
0
关于用 re
模块解析 JDBC 字符串,你觉得怎么样?比如说:
>>> import re
>>> jdbc_str = 'jdbc:mysql://repos.insttech.washington.edu:3306/johndoe?user=johndoe&password=jddb'
>>> jdbc_pattern = 'mysql://(.*?):(\d*)/'
>>> (host, port) = re.compile(jdbc_pattern).findall(jdbc_str)[0]
>>> print host
repos.insttech.washington.edu
>>> print port
3306
这个连接字符串是从一个示例中复制过来的,我不确定 user
和 password
这两个字段在连接字符串中是否总是存在,所以我没有把它们放进模式里。
另外,还有一个叫做 JayDeBeApi 的模块,可以用来连接 JDBC 服务器,你试过吗?
3
你应该使用 urlparse.urlparse
来解析jdbc字符串。
from urlparse import urlparse
jdbc = "jdbc:mysql://www.myurl.com:3306"
result= urlparse(jdbc)
MySQLdb.connect(host=result.host,
user=result.username,
passwd=result.password,
db="web3db4")
我不太确定你打算怎么传递数据库的内容……不过如果你把这个信息加上,我也可以帮你解决这个问题。