我无法在Ubuntu 16.04上安装MySQL JDBC驱动程序

我无法在Ubuntu 16.04上安装MySQL JDBC驱动程序,jdbc,ubuntu-16.04,mysql-connector,manifest.mf,Jdbc,Ubuntu 16.04,Mysql Connector,Manifest.mf,我下载了MySQL JDBC驱动程序以将Scala连接到MySQL数据库,但我无法使用java-jar MySQL-connector-java-5.1.45-bin.jar安装它。它说,在mysql-connector-java-5.1.45-bin.jar中没有主清单属性 我找不到任何MANIFEST.MF文件 任何帮助都将不胜感激 编辑:我运行sbt运行后出现警告 [info] Loading project definition from /home/alessandro/Scala/t

我下载了MySQL JDBC驱动程序以将Scala连接到MySQL数据库,但我无法使用
java-jar MySQL-connector-java-5.1.45-bin.jar安装它。它说,在mysql-connector-java-5.1.45-bin.jar中没有主清单属性

我找不到任何MANIFEST.MF文件

任何帮助都将不胜感激

编辑:我运行
sbt运行后出现警告

[info] Loading project definition from /home/alessandro/Scala/tests/project
[info] Loading settings from build.sbt ...
[info] Set current project to MyProject (in build file:/home/alessandro/Scala/tests/)
[info] Running tests.ScalaJdbcConnectSelect 
Sun Feb 18 21:51:33 CET 2018 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'pmanager.user' doesn't exist
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:488)
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:425)
    at com.mysql.jdbc.Util.getInstance(Util.java:408)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:944)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3973)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3909)
    at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2527)
    at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2680)
    at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2480)
    at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2438)
    at com.mysql.jdbc.StatementImpl.executeQuery(StatementImpl.java:1381)
    at tests.ScalaJdbcConnectSelect$.delayedEndpoint$tests$ScalaJdbcConnectSelect$1(ScalaJdbcConnectSelect.scala:16)
    at tests.ScalaJdbcConnectSelect$delayedInit$body.apply(ScalaJdbcConnectSelect.scala:5)
    at scala.Function0.apply$mcV$sp(Function0.scala:34)
    at scala.Function0.apply$mcV$sp$(Function0.scala:34)
    at scala.runtime.AbstractFunction0.apply$mcV$sp(AbstractFunction0.scala:12)
    at scala.App.$anonfun$main$1$adapted(App.scala:76)
    at scala.collection.immutable.List.foreach(List.scala:389)
    at scala.App.main(App.scala:76)
    at scala.App.main$(App.scala:74)
    at tests.ScalaJdbcConnectSelect$.main(ScalaJdbcConnectSelect.scala:5)
    at tests.ScalaJdbcConnectSelect.main(ScalaJdbcConnectSelect.scala)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:564)
    at sbt.Run.invokeMain(Run.scala:93)
    at sbt.Run.run0(Run.scala:87)
    at sbt.Run.execute$1(Run.scala:65)
    at sbt.Run.$anonfun$run$4(Run.scala:77)
    at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:12)
    at sbt.util.InterfaceUtil$$anon$1.get(InterfaceUtil.scala:10)
    at sbt.TrapExit$App.run(TrapExit.scala:252)
    at java.base/java.lang.Thread.run(Thread.java:844)
[success] Total time: 3 s, completed Feb 18, 2018, 9:51:34 PM

更新:

我找到了两个选择:

第一个

build.sbt
replace行中

libraryDependencies += "mysql" % "mysql-connector-java" % "5.1.24"
为此:

libraryDependencies ++= Seq(
"mysql" % "mysql-connector-java" % "5.1.16"
)
在命令行中:

sbt compile
sbt run
set fullClasspath in Compile += Attributed.blank(file("path-to-your-connector-jar"))
sbt compile
sbt run
第二个

在命令行中使用此命令:

sbt compile
sbt run
set fullClasspath in Compile += Attributed.blank(file("path-to-your-connector-jar"))
sbt compile
sbt run
之后,驱动程序的问题应该消失了,但是检查数据以连接到数据库

更新前:

在Scala上的项目中,您还可以使用:

package tests

import java.sql.{Connection,DriverManager}

object ScalaJdbcConnectSelect extends App {

  // connect to the database named "mysql" on port 8889 of localhost
  val url = "jdbc:mysql://localhost:8889/mysql"
  val driver = "com.mysql.jdbc.Driver"
  val username = "root"
  val password = "root"
  var connection:Connection = _
  try {
    Class.forName(driver)
    connection = DriverManager.getConnection(url, username, password)
    val statement = connection.createStatement
    val rs = statement.executeQuery("SELECT host, user FROM user")
    while (rs.next) {
      val host = rs.getString("host")
      val user = rs.getString("user")
      println("host = %s, user = %s".format(host,user))
    }
  } catch {
    case e: Exception => e.printStackTrace
  }
  connection.close
}


更新:

我找到了两个选择:

第一个

build.sbt
replace行中

libraryDependencies += "mysql" % "mysql-connector-java" % "5.1.24"
为此:

libraryDependencies ++= Seq(
"mysql" % "mysql-connector-java" % "5.1.16"
)
在命令行中:

sbt compile
sbt run
set fullClasspath in Compile += Attributed.blank(file("path-to-your-connector-jar"))
sbt compile
sbt run
第二个

在命令行中使用此命令:

sbt compile
sbt run
set fullClasspath in Compile += Attributed.blank(file("path-to-your-connector-jar"))
sbt compile
sbt run
之后,驱动程序的问题应该消失了,但是检查数据以连接到数据库

更新前:

在Scala上的项目中,您还可以使用:

package tests

import java.sql.{Connection,DriverManager}

object ScalaJdbcConnectSelect extends App {

  // connect to the database named "mysql" on port 8889 of localhost
  val url = "jdbc:mysql://localhost:8889/mysql"
  val driver = "com.mysql.jdbc.Driver"
  val username = "root"
  val password = "root"
  var connection:Connection = _
  try {
    Class.forName(driver)
    connection = DriverManager.getConnection(url, username, password)
    val statement = connection.createStatement
    val rs = statement.executeQuery("SELECT host, user FROM user")
    while (rs.next) {
      val host = rs.getString("host")
      val user = rs.getString("user")
      println("host = %s, user = %s".format(host,user))
    }
  } catch {
    case e: Exception => e.printStackTrace
  }
  connection.close
}

请阅读这一行:

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'pmanager.user' doesn't exist
检查是否有这样一张桌子。如果是这样,请在点(
user
)后留下字符。

请阅读这行:

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'pmanager.user' doesn't exist


检查是否有这样一张桌子。如果是这样,请在点(
user
)后面留下字符。

前面有人问过这个问题:它说应该在哪里执行jar文件来安装它?您只需要将它添加到您的项目及其类路径中就可以了?您只需要将它添加到您的项目及其类路径中就可以了。在代码中使用JDBC驱动程序之前,我是否应该在系统上安装JDBC驱动程序?我现在只有.jar文件。@A.N.Other将这个jar添加到项目中的
classpath
。自2007年以来,
Class.forName()
行就不再是必需的。我已经这样做了,但它说“classpath上没有这样的文件或类:ScalaJdbcConnectSelect”当我输入scala时ScalaJdbcConnectSelect@A.N.Other您必须将此jar添加到项目中的
类路径中。如下所示:在WEB-INF/classes/lib中,在代码中使用JDBC驱动程序之前,我是否应该在系统上安装JDBC驱动程序?我现在只有.jar文件。@A.N.Other将这个jar添加到项目中的
classpath
。自2007年以来,
Class.forName()
行就不再是必需的。我已经这样做了,但它说“classpath上没有这样的文件或类:ScalaJdbcConnectSelect”当我输入scala时ScalaJdbcConnectSelect@A.N.Other您必须将此jar添加到项目中的
类路径中。如下所示:在WEB-INF/classes/libI中,我刚刚注意到,但在scala脚本中没有要编写的表信息,它只要求用户、密码和数据库名。我遗漏了什么吗?看看这个:
val rs=statement.executeQuery(“从pmanager中选择主机、用户”)
。此处不能是您的数据库名称。这里必须是表名。尝试使用
parchive
。我是Scala和MySQL的初学者,请原谅,再次感谢。如果没有帮助,我真的无法完成所有这些。@a.N.Other当然,这里是问答的地方:)(我根本不使用Scala)我刚刚注意到,但在Scala脚本中没有要编写的表信息,它只要求用户,密码和数据库名称。我遗漏了什么吗?看看这个:
val rs=statement.executeQuery(“从pmanager中选择主机、用户”)
。此处不能是您的数据库名称。这里必须是表名。尝试使用
parchive
。我是Scala和MySQL的初学者,请原谅,再次感谢。如果没有帮助,我真的无法完成所有这些。@a.N.Other当然,这里是问答的地方:)(我根本不使用Scala)