2016-11-01 3 views
0

Это ошибка для меня. Я использовал правильный пароль, так как это то, что я набираю, когда начинаю MySQL.JDBC Доступ запрещен для пользователя 'root' @ 'localhost'

DefaultTableModel dtm=(DefaultTableModel) jTable1.getModel(); 
dtm.setRowCount(0); 
try{ 
    Class.forName("java.sql.Driver"); 
    Connection c=DriverManager.getConnection("jdbc:mysql://localhost/shashvat","root","1234"); 
    Statement s=c.createStatement();  
    ResultSet r=s.executeQuery("select * from phasetests;"); 

    while(r.next()){ 
     Object arr[]={r.getString(1),r.getString(2),r.getString(3),r.getString(4)}; 
     dtm.addRow(arr); 
    } 
}catch(Exception e){ 
System.out.println(e.getMessage()); 
} 

Исключение Сообщение:

Access denied for user 'root'@'localhost' (using password: YES) 

Я попытался это тоже: https://stackoverflow.com/a/17908407/5036731

проблема все еще сохраняется. Пожалуйста, помогите.

+0

Там номер порта не указан в этой строке подключения – Assen

+0

@Assen Указание номера порта не требуется, оно будет использовать порт по умолчанию n хариус. –

+0

вам нужно изменить это 'Class.forName (" java.sql.Driver ");' его не найти драйвер на первом месте – emotionlessbananas

ответ

0

EDIT: Ваш код должен быть примерно таким.

DefaultTableModel dtm=(DefaultTableModel) jTable1.getModel(); 
dtm.setRowCount(0); 
try{ 
    //Class.forName("java.sql.Driver"); This is wrong 
    Class.forName("com.mysql.jdbc.Driver"); // Declare it like this.. 
    Connection c=DriverManager.getConnection("jdbc:mysql://localhost:3306/shashvat","root","1234"); // port number was missing 
    Statement s=c.createStatement();  
    ResultSet r=s.executeQuery("select * from phasetests;"); 

    while(r.next()){ 
     Object arr[]={r.getString(1),r.getString(2),r.getString(3),r.getString(4)}; 
     dtm.addRow(arr); 
    } 
}catch(Exception e){ 
System.out.println(e.getMessage()); 
} 

См. Код, который я упоминал здесь, работает. Я проверил его локально. Проблема должна быть связана с паролем или доступ к схеме, за который вы можете обратиться к следующему.

Access Denied for User 'root'@'localhost' (using password: YES) - No Privileges?

Если это проблема с правами. Предоставьте все привилегии root, выполнив следующую команду.

GRANT ALL PRIVILEGES ON shashvat.* TO 'root'@'localhost' IDENTIFIED BY 'root' 

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

+0

Номер порта не требуется, и использование класса «Class.forName» не было необходимо с JDBC 4.0 (Java 6). –

+0

Я внес необходимые изменения, но он по-прежнему дает то же исключение. Кроме того, код, который я опубликовал, работает на других компьютерах, но не на моем. –

+0

@ ShashvatJayakrishnan- Можете ли вы подключить mysql с помощью workbench или другого инструмента IDE базы данных, используя имя пользователя ** 'root' ** и пароль ** '1234' **? –

0

Пожалуйста, используйте нижеуказанным синтаксис

Connection c =DriverManager.getConnection("jdbc:mysql"+"://"+host+":"+port+"/"+db,"root","pass"); 
0

Просто исправьте имя драйвера для com.mysql.jdbc.Driver и добавить хост с портом локального хоста: 3306

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