1

我正在尝试使用 Connector/J 连接到 mysql 数据库,但无论我使用什么代码都会得到相同的消息。我可以在 debian 上使用 mysql 命令手动连接它。

错误是You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '????????????????' at line 1

最新的代码是:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class E{
  public void connect(){
    try{
      Class.forName("com.mysql.jdbc.Driver").newInstance();
      conn = DriverManager.getConnection(
           "jdbc:mysql://192.168.1.3:3306/dbname?user=dbuser&password=dbpw");
    }catch( Exception e){
      System.out.printf("Something went wrong: "+e.getMessage());
  }
}

它在 getConnection 调用中失败。我使用打印语句来解决这个问题,因为 NetBeans 对此没有问题(但是当我放入一个坏主机并从 NetBeans 运行它时,它也不会抱怨)。

我遇到了与 DataSource 完全相同的问题

import java.sql.*;
import javax.sql.*;
...
com.mysql.jdbc.jdbc2.optional.MysqlDataSource ds
    = new com.mysql.jdbc.jdbc2.optional.MysqlDataSource();
ds.setServerName("192.168.1.3");
ds.setPortNumber(3306);
ds.setDatabaseName("dbname");
ds.setUser("dbuser");
ds.setPassword("dbpw");
conn = ds.getConnection();
...

某些东西正在起作用,因为如果我输入了错误的密码,我会收到拒绝访问的消息。
我正在使用 mysql-connector-java-5.1.22-bin.jar5.1.21 并且遇到了同样的问题。

4

3 回答 3

1

这些可能会帮助您:

您的 SQL 语法有错误;检查与您的 MySQL 对应的手册

连接 MySQL 服务器的问题

于 2012-09-11T14:39:07.780 回答
0

你的getConnection陈述应该是
conn = DriverManager.getConnection("jdbc:mysql://192.168.1.3:3306/dbname", "dbuser", "dbpw");

参考这个例子

于 2012-09-11T14:39:42.283 回答
0

我发现以下内容:JDBC 的 Stumped SQL 异常

简而言之,服务器 my.cnf 文件需要:

character_set_server=utf8
collation_server=utf8_general_ci

它还说 GCJ(gnu java 编译器)很冒险,但我没有替换它

于 2012-09-12T04:05:32.177 回答