2014-02-23 12 views
0

Невозможно подключиться к серверу, значит, код ничего не выводит. Я думаю, проблема заключается в получении соединения (даже если я меняю логин или пароль). Кстати, загружен jdbc-драйвер (я не устанавливал его отдельно, он был установлен по умолчанию с MySQL). таблица «users» находится во вновь созданной базе данных. Пожалуйста, дайте идею, что делать:Не удается подключиться к MySQL

import java.sql.*; 
import java.sql.Connection; 
import java.sql.Statement; 

public class DBConn { 

    public static void main(String[] args) { 
     Connection conn = null; 
     Statement statement = null; 
     ResultSet resultSet = null; 

     try{ 
      Class.forName("com.mysql.jdbc.Driver"); 
      String url = "jdbc:mysql://localhost:3306/users"; 
      conn = DriverManager.getConnection(url, "root", "1111"); 
      statement = conn.createStatement(); 
      resultSet = statement.executeQuery("SELECT * FROM users"); 
      while(resultSet.next()){ 
       System.out.println(resultSet.getInt("user_id") + ":" + resultSet.getString("usersName")); 
      } 
     } catch (ClassNotFoundException e){ 
      e.printStackTrace(); 
     } catch (SQLException e){ 
      e.printStackTrace(); 
     } finally { 

      try { 
       if (resultSet != null) resultSet.close(); 
       if (statement != null) statement.close(); 
       if (conn != null) conn.close(); 
      } catch (SQLException e){ 
       e.printStackTrace(); 
      } 
     } 
    } 
} 
+2

какое исключение вы получите в стеке? – Kick

+0

«localhost: 3306» относится к сокету TCP, но mysql имеет тенденцию переписывать TCP «localhost» в соединение сокета в UNIX-домене вместо этого для повышения эффективности. Если ваша установка драйвера/клиента неверна и поиск сокета не в том месте, вы не сможете подключиться. Это или действительно пытается подключиться через tcp, и ваш сервер настроен с помощью skip-networking и/или не привязан к localhost: 3306. –

+0

Вы пытаетесь подключиться к базе данных с именем 'users' и запрашивать таблицу с именем' users'. Это намеренно? Если это так, вам может потребоваться изменить SQL-запрос на 'resultSet = statement.executeQuery (« SELECT * FROM users.users »);'. В противном случае это может быть проблема с правами пользователя из MySql. В любом случае, в следующий раз покажите нам какие-либо ошибки, которые вы получаете, так как это поможет вам быстрее получить ответы и поможет нам лучше понять, какова ваша проблема. –

ответ

0

Следуйте инструкциям в противном случае ваш код хорошо:

  1. Проверьте mysql-connector-java-xxx библиотеку в проекте
  2. Является ли ваша база данных users, надеюсь, не изменить его соответствующим образом в ниже линии:

String url = "jdbc:mysql://localhost:3306/<put your Database Name>";

+0

Ребята, извините за длинный ответ - у меня есть работа на целый день и вы можете попробовать свои предложения только поздно вечером, когда у меня есть доступ к ноутбуку. Моя ошибка заключается в том, что я пытаюсь подключиться не к базе данных, а таблица, передаваемая как параметр к URL-адресу Driver.getConnection (url) неправильного URL (означает, что «пользователи» - это таблица, расположенная в «фрагменте» конкретной базы данных). Итак, решение состоит в том, чтобы изменить URL-адрес как «jdbc: mysql: // localhost: 3306/snippet» и statement.executeQuery («SELECT * FROM users»). Спасибо всем! – aime

+0

Да, это было .... –

Смежные вопросы