我有一个 Debian 服务器。
我正在尝试在其上运行一个 JSP 网站。我使用 MySQL
和 Tomcat 7.0.54
。
现在我的问题是: 当我发送包含所有数据的表单时,出现此错误:
No connection to jdbc:mysql://localhost:3306/database?user=root&password=*****
在终端中我可以访问数据库。
这是我的代码:
package com.ubs.jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
public class DBConnector
{
private static Connection con = null;
// HIER DEN CONNECT STRING ANPASSEN //
private String connectString = "jdbc:mysql://localhost:3306/swissskills?user=root2&password=swissskills"; /* CHANGE */
private Connection openConnection()
{
try
{
Class.forName( "com.mysql.jdbc.Driver" );
con = DriverManager.getConnection( connectString );
return con;
}
catch( Exception e)
{
System.out.println( "No connection to " + connectString );
}
return null;
}
public static Connection getConnection()
{
if( con == null )
{
return new DBConnector().openConnection();
}
return con;
}
public static void closeConnection()
{
try
{
getConnection().close();
con = null;
}
catch( Exception e )
{
System.out.println( "CLOSE CONNECTION: " + e.getMessage() );
}
}
我做错了什么?
最佳答案
安装Mysql JDBC
# apt-get install libmysql-java
为所有用户设置环境/etc/environment:
JAVA_HOME="/usr/lib/jvm/java-8-openjdk-amd64"
CLASSPATH=".:/usr/share/java/mysql.jar:/usr/share/java/postgresql-jdbc4.jar"
注意:将/usr/lib/jvm/java-8-openjdk-amd64 更改为您安装的 JDK
使用此代码测试您的连接:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Properties;
class TestDB {
/*
/usr/share/java
http://dev.mysql.com/doc/connector-j/5.1/en/
https://jdbc.postgresql.org/documentation/documentation.html
*/
static Connection conn = null;
public static void main(String[] args) {
// MySQL
try {
System.out.println("Loading Class com.mysql.jdbc.Driver");
Class.forName("com.mysql.jdbc.Driver") ;
System.out.println("Loading com.mysql.jdbc.Driver Successful");
conn = DriverManager.getConnection("jdbc:mysql://localhost/database?user=user&password=password");
// Do something with the Connection
System.out.println("Test Connection Successful");
} catch (SQLException ex) {
// handle any errors
System.out.println("SQLException: " + ex.getMessage());
System.out.println("SQLState: " + ex.getSQLState());
System.out.println("VendorError: " + ex.getErrorCode());
} catch (ClassNotFoundException ex) {
System.out.println("Class Not Found: " + ex.getMessage());
}
}
}
注意:使用您的连接设置更改数据库、用户和密码
关于java - 在 Debian 服务器上使用来自 Tomcat 的 JDBC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24055763/