mysql用戶認證協議更換(mysql使用問題)

 

安裝好mysql後,在使用mysq時,出現瞭如下問題.
java.sql.SQLException: Communication failure during handshake. Is there a server running on localhost:3306?
at org.gjt.mm.mysql.MysqlIO.init(MysqlIO.java:327)
at org.gjt.mm.mysql.Connection.connectionInit(Connection.java:261)
at org.gjt.mm.mysql.jdbc2.Connection.connectionInit(Connection.java:89)
at org.gjt.mm.mysql.Driver.connect(Driver.java:167)
at java.sql.DriverManager.getConnection(DriverManager.java:523)

 

MYSQL 4.1以後, 採用了一種新的用戶認證協議, 對於老的客戶端會出現不支持認證協議的錯誤, 以下是官方網站的解決方法﹔

1When connecting to the server with a pre-4.1 client program, use an account that still has a pre-4.1-style password.

使用以前建立的賬號連接,對於在新的認證協議下建立的賬戶就不行了

3Reset the password to pre-4.1 style for each user that needs to use a pre-4.1 client program. This can be done using the SET PASSWORD statement and the OLD_PASSWORD() function: mysql> SET PASSWORD FOR 
-> 'some_user'@'some_host' = OLD_PASSWORD('newpwd');

Alternatively, use UPDATE and FLUSH PRIVILEGES: mysql> UPDATE mysql.user SET Password = OLD_PASSWORD('newpwd') -> WHERE Host = 'some_host' AND User = 'some_user'; 
mysql> FLUSH PRIVILEGES;

Substitute the password you want to use for ``newpwd'' in the preceding examples. MySQL cannot tell you what the original password was, so you'll need to pick a new one.

這是一個不錯的辦法,新建立的賬號採用老式的加密協議

4Tell the server to use the older password hashing algorithm: 
Start mysqld with the --old-passwords option.

這樣新認證協議的優點就沒法使用了

5Assign an old-format password to each account that has had its password updated to the longer 4.1 format. You can identify these accounts with the following query: mysql> SELECT Host, User, Password FROM mysql.user 
-> WHERE LENGTH(Password) > 16;

For each account record displayed by the query, use the Host and User values and assign a password using the OLD_PASSWORD() function and either SET PASSWORD or UPDATE, as described earlier.

恢復已經升級了口令到老樣式

解決方法是進入mysql

use mysql;

SET PASSWORD FOR 'some_user'@'localhost' = OLD_PASSWORD('newpwd');

 

發佈了3 篇原創文章 · 獲贊 0 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章