环境:
suse10.2
jdk1.5.0_13
mysql5.0.26
mysql-connector-java-5.1.5
环境变量:
export JAVA_HOME=/usr/java/jdk1.5.0_13
export CLASSPATH=$CLASSPATH:.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:
/usr/local/sdk/jdbc/mysql-connector-java-5.1.5-bin.jar:$JAVA_HOME/lib/mysql-connector-java-5.1.5-bin.jar
export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin
程序:
import java.sql.*;
public class LoadDriver
{
public static void main(String args[])
{
String driver="com.mysql.jdbc.Driver";
String url="jdbc:mysql://localhost:3306/test?user=javauser&password=javadata&useJvmCharsetConverters=true";
try
{
Class.forName(driver);
}
catch(Exception e)
{
System.out.println("无法加载驱动程序:"+driver);
}
try
{
Connection con=DriverManager.getConnection(url);
Statement stmt=con.createStatement();
ResultSet rs=stmt.executeQuery("select * from testdata");
while(rs.next())
{
int r1=rs.getInt("ID");
String r2=rs.getString("FOO");
String r3=rs.getString("BAR");
System.out.println("ID:"+r1+"FOO:"+r2+"BAR:"+r3);
}
rs.close();
stmt.close();
con.close();
} catch(SQLException ee)
{
System.out.println("数据库连接失败!");
ee.printStackTrace();
}
}
}
错误:
数据库连接失败!
java.sql.SQLException: Access denied for user 'javauser'@'localhost' (using password: YES)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1056)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:957)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3376)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3310)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:894)
at com.mysql.jdbc.MysqlIO.secureAuth411(MysqlIO.java:3808)
at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1256)
at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2034)
at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:730)
at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:298)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:283)
at java.sql.DriverManager.getConnection(libgcj.so.7)
at java.sql.DriverManager.getConnection(libgcj.so.7)
at LoadDriver.main(LoadDriver.java:18)
说明:单独的运行其他的java程序没问题,用户javauser连接mysql也没问题,
但java程序用javauser用户连接mysql就会报上面的错。我已经被这问题折磨的快不行了,希望大家能帮帮我,先谢了!
suse10.2
jdk1.5.0_13
mysql5.0.26
mysql-connector-java-5.1.5
环境变量:
export JAVA_HOME=/usr/java/jdk1.5.0_13
export CLASSPATH=$CLASSPATH:.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:
/usr/local/sdk/jdbc/mysql-connector-java-5.1.5-bin.jar:$JAVA_HOME/lib/mysql-connector-java-5.1.5-bin.jar
export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin
程序:
import java.sql.*;
public class LoadDriver
{
public static void main(String args[])
{
String driver="com.mysql.jdbc.Driver";
String url="jdbc:mysql://localhost:3306/test?user=javauser&password=javadata&useJvmCharsetConverters=true";
try
{
Class.forName(driver);
}
catch(Exception e)
{
System.out.println("无法加载驱动程序:"+driver);
}
try
{
Connection con=DriverManager.getConnection(url);
Statement stmt=con.createStatement();
ResultSet rs=stmt.executeQuery("select * from testdata");
while(rs.next())
{
int r1=rs.getInt("ID");
String r2=rs.getString("FOO");
String r3=rs.getString("BAR");
System.out.println("ID:"+r1+"FOO:"+r2+"BAR:"+r3);
}
rs.close();
stmt.close();
con.close();
} catch(SQLException ee)
{
System.out.println("数据库连接失败!");
ee.printStackTrace();
}
}
}
错误:
数据库连接失败!
java.sql.SQLException: Access denied for user 'javauser'@'localhost' (using password: YES)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1056)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:957)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3376)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3310)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:894)
at com.mysql.jdbc.MysqlIO.secureAuth411(MysqlIO.java:3808)
at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1256)
at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2034)
at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:730)
at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:298)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:283)
at java.sql.DriverManager.getConnection(libgcj.so.7)
at java.sql.DriverManager.getConnection(libgcj.so.7)
at LoadDriver.main(LoadDriver.java:18)
说明:单独的运行其他的java程序没问题,用户javauser连接mysql也没问题,
但java程序用javauser用户连接mysql就会报上面的错。我已经被这问题折磨的快不行了,希望大家能帮帮我,先谢了!
报无法加载驱动程序:org.gjt.mm.mysql.jdbc.Driver
我用的是mysql-connector-java-5.1.5驱动
用com.mysql.jdbc.Driver可以加载驱动,不应该是驱动的问题,
我想是连接数据库的问题,但最让人无奈的是我用javauser连接数据库不报
Access denied for user 'javauser '@ 'localhost ' (using password: YES),并且可以
操作数据库的一切数据(当然包括test数据库了)。无奈啊!!