2011-05-21 1923 views
28

我試圖在我的服務器上部署web應用程序,我得到這個mysql數據庫異常 「Access denied for user' root'@'localhost'(使用密碼:YES)(Mysql :: Error)「訪問被拒絕用戶'root'@'localhost'(使用密碼:YES)(Mysql :: Error)

我試圖從命令提示符使用mysql -u root -p訪問數據庫我能夠執行所有數據庫操作。

什麼是錯誤

java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES) 
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2928) 
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:771) 
    at com.mysql.jdbc.MysqlIO.secureAuth411(MysqlIO.java:3649) 
    at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1176) 
    at com.mysql.jdbc.Connection.createNewIO(Connection.java:2558) 
    at com.mysql.jdbc.Connection.<init>(Connection.java:1485) 
    at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:266) 
    at java.sql.DriverManager.getConnection(DriverManager.java:620) 
    at java.sql.DriverManager.getConnection(DriverManager.java:200) 
    at com.mpigeon.DbConnection.DbConn(DbConnection.java:26) 
    at com.mpigeon.CheckLoginHome.doGet(CheckLoginHome.java:39) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:617) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 
+1

假設您使用的是JDBC,是否可以提供完整的錯誤消息(SQLException.getMessage())和堆棧跟蹤? – Daniel 2011-05-21 11:18:28

+1

連接字符串的密碼錯誤 嘗試mysql -u root -h localhost -p – 2011-05-21 11:27:51

+0

@Daniel:我發佈了錯誤信息請親切看看,並且善意幫助我 – 2011-05-21 12:18:28

回答

20

您需要授予從本地主機訪問到根。檢查this Ubuntu的幫助

+0

我有同樣的問題,這個問題。但我已授予訪問我的用戶,我繼續相同的問題:( – jjmartinez 2014-01-04 23:03:31

+6

Yakshemash!如果它發生在Windows 7,64位如何做到這一點? – 2014-04-24 18:18:44

+0

如何mac os x? – www139 2015-01-27 04:56:28

6

檢查你是在密碼的空白處。

1

我的應用程序使用Mura CMS,我遇到了這個問題。但解決方案是我的mysql本地服務器和配置文件中的密碼之間的密碼不匹配。只要我將它們同步,它就可以工作。

8

嘗試使用root如..

mysql -uroot 

,那麼你可以檢查不同的用戶和主機,你登錄使用

select user,host,password from mysql.user; 
0

後,我通過刪除空的用戶通過MySQL中創建解決了這個問題。我只有root用戶和我自己的用戶。我刪除了其餘的。

-1

更新在MySQL

use mysql; 
select host,user,password from mysql.user; 
update mysql.user set password = PASSWORD('123456') where password = ''; 
flush privileges; 
+0

對我沒有幫助 – CodyBugstein 2014-06-09 22:40:14

+1

請注意,您在此顯示的WHERE條款將重置所有沒有用戶的用戶的密碼,而不僅僅是root用戶(即'WHERE User ='root''也許?) – 2014-08-09 04:14:11

+0

登錄只是爲了說這是唯一適合我的解決方案! – 2016-07-09 22:40:15

0

更新用戶MySQL的 DB的表mysql.user空密碼。並設置一些密碼,它是空白的,我使用root用戶,所以我設置root用戶的密碼。

update mysql.user set password = PASSWORD('123456') where password = ''; 
flush privileges; 

然後再次嘗試從ATG CIM通過提供密碼,它工作正常。

After update

http://i.stack.imgur.com/3Lchp.png

+1

請注意,您在此顯示的WHERE條款將重置所有用戶的密碼沒有一個,不只是root用戶(即'WHERE User ='root''也許?) – 2014-08-09 04:13:21

0

而安裝的SugarCRM(免費CRM)今天我這個問題。

系統無法使用root用戶連接到數據庫。我可以從控制檯以root身份明確登錄......那麼問題是什麼?

我發現在我的情況下,我得到了完全相同的錯誤,但那是因爲密碼直接從$_POST數據發送到mysql,換句話說,我的密碼中的<字符被髮送到mysql因爲&lt;這意味着密碼錯誤。

其他一切都沒有幫助。 mysql中的用戶列表是正確的,包括匿名用戶(出現在root項後面)。

2

將MySQL服務器從5.1.73升級到5.5後,我遇到了同樣的錯誤。45 還有另一種方法來解決這個錯誤。

在我的情況下,我能夠使用root密碼連接到MySQL,但MySQL主動拒絕將GRANT PRIVILEGES授予任何用戶;

  1. 連接到MySQL作爲根

    mysql -u root -p 
    

    然後輸入您的MySQL root密碼;

  2. 選擇數據庫;

    use mysql; 
    
  3. 最有可能是在mysql.user表允許只從localhost連接根只有一條記錄(這是在我的情況),但是默認的應該有兩個記錄的根,一個爲localhost和另一一個用於127.0.0.1;

  4. 爲根用戶創建更多記錄,如果Host='127.0.0.1'不存在,

    SET @s = CONCAT('INSERT INTO mysql.user SELECT ', 
          REPLACE((SELECT GROUP_CONCAT(COLUMN_NAME) 
            FROM INFORMATION_SCHEMA.COLUMNS 
            WHERE TABLE_NAME = 'user' AND TABLE_SCHEMA = 'mysql') 
          ,"Host","'127.0.0.1'"), 
          ' FROM mysql.user WHERE User="root"'); 
    
        PREPARE stmt FROM @s; 
        EXECUTE stmt; 
    
  5. 此外到可以執行mysql_upgrade -u -p ,看看是否一切正常。

0

我GOOGLE了很多,但沒有找到一個明確的答案我的問題。我使用KeyPass生成一個強大的密碼,並且可以在mysql工作臺上成功使用它來連接,但不能從命令行連接。所以我將psw改成了一個簡單的命令行,並在命令行上運行。我設法創建了一個能夠從終端連接的強密碼。所以我的建議是,在嘗試所有類型的事情之前先嚐試一個簡單的密碼。

0

我正在運行UT並開始接收錯誤消息。我不確定是什麼問題。但是當我將INTELLIJ中的編碼風格更改爲UTF8時,它再次開始工作。

拒絕訪問用戶 '根' @ 'localhost' 的(使用密碼是) 冬眠

這是我的網址 = db.url配置參數的jdbc:mysql的://本地主機:3306/somedb ?了useUnicode =真& connectionCollat​​ion = utf8_general_ci & characterSetResults = UTF8 &的characterEncoding = UTF8

相關問題