JDBC Hibernate – Mysql连接错误

我的Ubuntu 11.10桌面上有一个本地mysql服务器。 hostname = localhost; username = root; 密码= root; 数据库名称= CBS。 我真的很困惑,因为当我使用terminalmysql administratormysql query browser访问mysql时,我使用上面提到的那些身份validation,一切都很好。 我的问题是当我在Java App中配置我的jdbc.properties时,我收到此错误:

org.springframework.web.util.NestedServletException:请求处理失败; 嵌套exception是org.springframework.jdbc.UncategorizedSQLException:Hibernate操作:无法打开连接; 未分类的SQL的SQLException [???]; SQL状态[28000]; 错误代码[1045]; 用户’root’@’localhost’访问被拒绝(使用密码:YES); 嵌套exception是java.sql.SQLException:用户’root’@’localhost’拒绝访问(使用密码:YES)

我的配置文件jdbc.properties:

 jdbc.driverClassName=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://localhost:3306/CBS jdbc.username=root jdbc.password=root 

顺便说一句,我将使用本地服务器的原因是因为我们的主服务器关闭所以我必须使用我的本地mysql继续我的项目。 请帮帮我…先谢谢。

您的框架很可能以127.0.0.1身份登录到本地数据库。 如果您尚未定义适当的域范围凭据,那么将在MySQL中创建登录问题。 试试这个来validation:

 mysql -uroot -proot SELECT * from mysql.user WHERE user = 'root'; 

如果没有’root’@’127.0.0.1’然后找到问题并解决问题,请执行以下两项操作之一:

  1. 在’127.0.0.1’中为’root’定义域范围的凭据。
  2. 为“root”定义通配符域范围的凭据,这样您就可以使用来自多个位置的凭据登录MySQL。

这是第二个例子:

 mysql -uroot -proot CREATE USER 'root'@'%' IDENTIFIED BY 'root'; GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION; FLUSH PRIVILEGES; 

另外,我肯定会建议您为用户ID和密码使用更具创意的内容。 特别是如果您为服务器启用了TCP套接字。

您可能必须具有GRANT权限才能访问数据库。

查看MySQL文档,看起来像这样:

 create database pmt; create user pmt identified by 'pmt'; grant all on pmt.* to 'pmt'@'%'; 

“pmt”只是上面的一个例子。 我碰巧将数据库,用户名和密码的名称全部相同。 我不建议将其作为最佳做法。 这只是我为一些本地开发所做的事情。

我个人不喜欢GRANTing root访问任何应用程序。 我甚至不会在玩具应用程序中使用root用户名和密码。 创建新用户并授予适当的权限并不需要太多精力。