最近螃蟹把别人机器上的MYSQL中的一个数据库导出来,生成了一个.sql的文件。运行时报错:
2014-9-20 20:45:37 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet action threw exception
java.sql.SQLException: There is no 'root'@'%' registered
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2921)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:770)
at com.mysql.jdbc.MysqlIO.nextRow(MysqlIO.java:1288)
at com.mysql.jdbc.MysqlIO.readSingleRowSet(MysqlIO.java:2258)
at com.mysql.jdbc.MysqlIO.getResultSet(MysqlIO.java:421)
at com.mysql.jdbc.MysqlIO.readResultsForQueryOrUpdate(MysqlIO.java:1959)
at com.mysql.jdbc.MysqlIO.readAllResults(MysqlIO.java:1384)
at com.mysql.jdbc.ServerPreparedStatement.serverExecute(ServerPreparedStatement.java:1133)
at com.mysql.jdbc.ServerPreparedStatement.executeInternal(ServerPreparedStatement.java:670)
at com.mysql.jdbc.PreparedStatement.execute(PreparedStatement.java:770)
at com.mchange.v2.c3p0.impl.NewProxyPreparedStatement.execute(NewProxyPreparedStatement.java:911)
at sun.reflect.GeneratedMethodAccessor58.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.ibatis.common.jdbc.logging.PreparedStatementLogProxy.invoke(PreparedStatementLogProxy.java:62)
at $Proxy33.execute(Unknown Source)
上面的报错的意思是,这里没有一个叫'root'@'%' 的用户存在。其实只要建议叫做“%”的用户就可以了,例如螃蟹用的是navicat工具,创建如下:
如此便可以正常运行了。
--转自