機器重新安裝系統後,之前好好的項目運行項目報錯:Host '主機名' is not allowed to connect to this MySQL server
控制台信息如下:
[2013-08-20 16:13:00 750][WARN](org.hibernate.util.JDBCExceptionReporter.logExceptions(JDBCExceptionReporter.java:77)) SQL Error: 0, SQLState: null
[2013-08-20 16:13:00 750][ERROR](org.hibernate.util.JDBCExceptionReporter.logExceptions(JDBCExceptionReporter.java:78)) Cannot create PoolableConnectionFactory (null, message from server: "Host 'microsof-80f25e' is not allowed to connect to this MySQL server")
[2013-08-20 16:13:00 750][WARN](org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:109)) Could not obtain connection metadata
org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (null, message from server: "Host 'microsof-80f25e' is not allowed to connect to this MySQL server")
at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1225)
at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:880)
at org.springframework.orm.hibernate3.LocalDataSourceConnectionProvider.getConnection(LocalDataSourceConnectionProvider.java:81)
at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:76)
…………………………
系統中我用的是root賬號,也就是root用戶沒有遠程訪問主機的緣故(當初安裝Mysql時,沒有勾選Enable root access from remote machines)
如下圖所示:
解決方法1:打開mysql的實例配置嚮導:MySQL Server Instance Config Wizard,勾選Enable root access from remote machines即可。
解決方法2:修改root權限,讓root用戶擁有遠程訪問的權限:
//賦予root訪問任何主機數據的權限
(1)GRANT ALL PRIVILEGES ON *.*TO
'root'@'%'WITH
GRANT OPTION
//使修改配置生效
(2)FLUSHPRIVILEGES
PS:第二種方式沒有效果的話,重啟動下機器。