Назад | Перейти на главную страницу

Разочаровывающее исключение MySQL JDBC

Поэтому я настраиваю свой новый сервер после того, как мой старый умер из-за сбоя сервера. Единственный валун, в который я попал, - это установленный JDBC. На моем сервере работает программа Java, которая изначально отлично работала со старым сервером. Я перейду к сути и покажу вам, в чем проблема ... Вот трассировка стека, когда я пытаюсь подключиться, используя 127.0.0.1, а также localhost:

com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: 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
    com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1049)
    com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3593)
    com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3525)
    com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1986)
    com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2140)
    com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2620)
    com.mysql.jdbc.ConnectionImpl.configureClientCharacterSet(ConnectionImpl.java:1890)
    com.mysql.jdbc.ConnectionImpl.initializePropsFromServer(ConnectionImpl.java:3523)
    com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2386)

Довольно расплывчато, не правда ли?

Это код, который я использую для подключения к серверу (который отлично работает на моем старом сервере):

Class.forName("com.mysql.jdbc.Driver").newInstance();
Connection con = java.sql.DriverManager.getConnection("jdbc:mysql://localhost:3306/schema?user=user_name&password=pass_word");

Вот некоторая информация о моем сервере: Сервер работает под управлением Debian Squeeze, MySQL настроен нормально, потому что phpMyAdmin работает отлично, Java версии 1.5.0, JDBC Connector / J версии 5.1.14, CLASSPATH установлен в правильный каталог, порты правильно перенаправлено 3306.

Мои последние средства - это разрешения, которые я не совсем уверен, как исправить эти критерии. Итак, что мне не хватает для тех, кто правильно подключил Java-сервер к JDBC? Как я уже упоминал, этот Java-сервер работал на моем старом сервере (но на нем был запущен Debian Lenny). Спасибо!

Как показано в исключении, ошибка находится в синтаксисе SQL, вероятно, в URL-адресе JDBC, если вы читаете документация вы можете видеть, что если порт не указан, двоеточие также может быть опущено, попробуйте следующее:

.getConnection("jdbc:mysql://localhost/schema?user=user_name&password=pass_word")

Надеюсь, что это работает.