使用Python使用jaydebeapi连接MYSQL数据库

使用Python使用jaydebeapi连接MYSQL数据库,python,mysql,jpype,jaydebeapi,Python,Mysql,Jpype,Jaydebeapi,我正在尝试从Python提示符连接到MySQL数据库,并使用JayDeBeApi。下面是我正在使用的一段代码: "**Python 2.7.16 (default, Oct 10 2019, 22:02:15) [GCC 8.3.0] on linux2 Type "help", "copyright", "credits" or "license" for more information. >&

我正在尝试从Python提示符连接到MySQL数据库,并使用JayDeBeApi。下面是我正在使用的一段代码:

"**Python 2.7.16 (default, Oct 10 2019, 22:02:15) 
[GCC 8.3.0] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import jpype
>>> import jaydebeapi
>>> import os
>>> jar = "/tmp/:/usr/share/java/"
>>> os.environ['JAVA_HOME'] ="/usr/lib/jvm/adoptopenjdk-8-hotspot-amd64"
>>> os.environ['CLASSPATH'] =jar
>>> args='-Djava.class.path=%s' % jar
>>> jvm_path = jpype.getDefaultJVMPath()
>>> jpype.startJVM(jvm_path, args)
/home/aarpan_roy/.local/lib/python2.7/site-packages/jpype/_core.py:218: UserWarning: 
-------------------------------------------------------------------------------
Deprecated: convertStrings was not specified when starting the JVM. The default
behavior in JPype will be False starting in JPype 0.8. The recommended setting
for new code is convertStrings=False.  The legacy value of True was assumed for
this session. If you are a user of an application that reported this warning,
please file a ticket with the developer.
-------------------------------------------------------------------------------

  """)
>>> database_host='<MySQL DB HOST>'
>>> database_user='<MySQL DB USER>'
>>> database_password='<MySQL DB PASSWORD>'
>>> database_port='<MySQL DB PORT>'
>>> database_db='<MySQL DB DATABASE>'
>>> jclassname = "com.mysql.jdbc.Driver"
>>> url = "jdbc:mysql://{host}:{port}/{database}".format(host=database_host, port=database_port, database=database_db)
>>> driver_args = [url, database_user, database_password]
>>> jars = ["/tmp/mysql-connector-java-5.1.45.jar","/usr/share/java/mysql.jar"]
>>> libs = None
>>> cnx = jaydebeapi.connect(jclassname, url, driver_args, jars=jars, libs=libs)**
“**Python 2.7.16(默认,2019年10月10日22:02:15)
[GCC 8.3.0]在linux2上
有关详细信息,请键入“帮助”、“版权”、“信用证”或“许可证”。
>>>导入jpype
>>>进口jaydebeapi
>>>导入操作系统
>>>jar=“/tmp/:/usr/share/java/”
>>>os.environ['JAVA_HOME']=“/usr/lib/jvm/adoptopenjdk-8-hospot-amd64”
>>>os.environ['CLASSPATH']=jar
>>>args='-Djava.class.path=%s'%1!'
>>>jvm_path=jpype.getDefaultJVMPath()
>>>Jtype.startJVM(jvm_路径,args)
/home/aarpan_roy/.local/lib/python2.7/site packages/jpype/_core.py:218:UserWarning:
-------------------------------------------------------------------------------
不推荐使用:启动JVM时未指定ConvertString。默认值为
JPype中的行为将在JPype 0.8中错误启动。建议使用此设置
对于新代码,convertStrings=False。假定的旧值为True
此会话。如果您是报告此警告的应用程序的用户,
请向开发商提交票据。
-------------------------------------------------------------------------------
""")
>>>数据库_主机=“”
>>>数据库用户=“”
>>>数据库密码=“”
>>>数据库_端口=“”
>>>数据库_db=''
>>>jclassname=“com.mysql.jdbc.Driver”
>>>url=“jdbc:mysql://{host}:{port}/{database}”。格式(host=database\u host,port=database\u port,database=database\u db)
>>>驱动程序参数=[url,数据库用户,数据库密码]
>>>jars=[“/tmp/mysql-connector-java-5.1.45.jar”,“/usr/share/java/mysql.jar”]
>>>libs=无
>>>cnx=jaydebeapi.connect(jclassname、url、驱动程序参数、jars=jars、libs=libs)**
但是,我得到了以下错误: “回溯(最近一次呼叫最后一次): 文件“”,第1行,在 文件“/.local/lib/python2.7/site packages/jaydebeapi/init.py”,第412行,在connect中 jconn=\ujdbc\uconnect(jclassname、url、驱动程序参数、jars、libs) 文件“/.local/lib/python2.7/site packages/jaydebeapi/init.py”,第221行,在jdbc\u connect\u jpype中 jType.JClass(jclassname) 文件“/.local/lib/python2.7/site packages/jpype/jclass.py”,第130行,在新建 返回JClassNew(参数[0],**kwargs) 文件“/.local/lib/python2.7/site-packages/jpype/jclass.py”,第228行,在jclass-new中 javaClass=\u jpype.PyJPClass(arg) jpype.jclass.NoClassDefFoundError:java.lang.NoClassDefFoundError:com/mysql/jdbc/Driver "

你能帮我理解我在哪里遗漏了什么,这里需要纠正什么吗?
提前感谢。

我无法在指定的类路径上找到正确的mysql驱动程序JAR。因此,您将看到ClassNotFoundException。尝试指定它的确切路径