2012-08-15 3 views
2

У меня возникли проблемы с моим проектом, он включает в себя JDBC и Mysql.java.sql.SQLException: Доступ запрещен для пользователя 'root' @ 'localhost' (с использованием пароля: НЕТ)

Когда я делаю следующее:

private Statement m_statement = null;    // statement 
private Connection m_connection = null;    // connection 

/** 
* Constructor #1 of the Database class 
* @throws ClassNotFoundException 
*/ 
public Database() throws ClassNotFoundException 
{ 
    try 
    { 
     Class.forName("com.mysql.jdbc.Driver"); 
     MysqlDataSource ds = new MysqlConnectionPoolDataSource(); 
     ds.setServerName("localhost"); 
     ds.setPort(3306); 
     ds.setUser("root"); 
     ds.setPassword(""); 
     this.m_connection = ds.getConnection(); 
     this.m_statement = this.m_connection.createStatement(); 
    } 

    catch (SQLException s) 
    { 
     System.out.println("SQL statement is not executed! 2!"); 
    } 

} 

Когда я пытаюсь соединиться с указанным кодом, соединение не работает, вот StackTrace:

java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: NO) 
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1074) 
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4074) 
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4006) 
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:919) 
    at com.mysql.jdbc.MysqlIO.proceedHandshakeWithPluggableAuthentication(MysqlIO.java:1694) 
    at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1244) 
    at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2397) 
    at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2430) 
    at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2215) 
    at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:813) 
    at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:47) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) 
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) 
    at java.lang.reflect.Constructor.newInstance(Unknown Source) 
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:411) 
    at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:399) 
    at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:334) 
    at com.mysql.jdbc.jdbc2.optional.MysqlDataSource.getConnection(MysqlDataSource.java:443) 
    at com.mysql.jdbc.jdbc2.optional.MysqlDataSource.getConnection(MysqlDataSource.java:141) 
    at com.mysql.jdbc.jdbc2.optional.MysqlDataSource.getConnection(MysqlDataSource.java:111) 
    at db.Database.<init>(Database.java:99) 
    at controller.LoginPage.doGet(LoginPage.java:61) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:621) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:225) 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123) 
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168) 
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98) 
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927) 
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407) 
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1001) 
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:579) 
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 
    at java.lang.Thread.run(Unknown Source) 

Как исправить Это ?

С уважением

+4

Вы уверены, что у вас нет пароля? – jn1kk

+0

Кажется, что ваш пароль неверен. –

+0

Можете ли вы попытаться использовать эти учетные данные для входа в свой mysql db вручную? – Tudor

ответ

3

я встречаю ту же ошибку, это то, как я установил его:

Я использовал DriverManager класс вроде этого:

Class.forName("com.mysql.jdbc.Driver"); 
    Connection Hello = DriverManager.getConnection("jdbc:mysql://YOUR-URL-HERE", "USERNAME", "PASSWORD"); 

И это все. Кроме того, при выборе стола, remenber поставить имя БД первым, как:

"DB_NAME.TABLE_NAME". 
+0

Может кто-нибудь, пожалуйста, приведи пример этой части: ВАШ-URL-ЗДЕСЬ – Yster

+0

Не волнуйся, нашел. Первый параметр: "jdbc: mysql: //127.0.0.1: 3306/myDBName" – Yster

2

проверить, если MySQL имеет пароль, перейдите в каталог, где установлен MySQL, а также в каталоге бен попытаться вывести MySQL запрос с использованием

./mysql -u корень MySQL

Если вход в систему проходит без каких-либо проблем, это означает, что пароль не установлен.
Вы можете использовать скрипт mysqadmin для установки/сброса пароля.

./mysqladmin -u корневой пароль "пароль строка"

2

Похоже, вы только установили MySQL. Запустить mysql_secure_installation. Он, в частности, предложит вам пароль root.

0

Либо имя пользователя/пароль неправильный или пользователь не хватает прав для доступа к схеме/таблицы. Предоставления грантов с использованием

ГРАНТ ВСЕ ПРИВИЛЕГИИ НА . TO «root» @ «localhost» с опцией GRANT

1

У меня была та же проблема. Вам необходимо установить пароль для пользователя. Перейдите в консоль mysql.

$ mysqladmin -u root password myFirstpassword 

Затем измените пароль в программе Java

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

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