今天程式報了異常:java.sql.SQLException: Access denied for user 'root'@'RJB-Z' (using passwrod)。
String url ="jdbc:mysql://192.168.1.169:3306/test“;
密碼沒錯的,在命令列視窗都能登進去。上網查了下發現是因為root使用者不允許遠端連線,我在這個網站(http://xucons.javaeye.com/blog/278581)找到瞭解決方法:改表或者賦權。http://xucons.javaeye.com/blog/278581
如果你串連mysql的時候發生這個錯誤:
Sql代碼
- ERROR 1130: Host '192.168.1.3' is not allowed to connect to this MySQL server
以下是引用內容:ERROR 1130: Host '192.168.1.3' is not allowed to connect to this MySQL server
解決方案:
1。 改表法。
可能是你的帳號不允許從遠程登陸,只能在localhost。這個時候只要在localhost的那台電腦,登入mysql後,更改 "mysql" 資料庫裡的 "user" 表裡的 "host" 項,從"localhost"改稱"%"
Java代碼
- mysql -u root -p
- mysql>use mysql;
- mysql>update user set host = '%' where user = 'root';
- mysql>select host, user from user;
mysql -u root -pmysql>use mysql;mysql>update user set host = '%' where user = 'root';mysql>select host, user from user;
2. 授權法。
例如,你想myuser使用mypassword從任何主機串連到mysql伺服器的話。
Sql代碼
- GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
如果你想允許使用者myuser從ip為192.168.1.3的主機串連到mysql伺服器,並使用mypassword作為密碼
Sql代碼
- GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.3' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;