3

我的 Ubuntu 11.10 桌面上有一个本地 mysql 服务器。主机名 = 本地主机;用户名 = 根;密码=根;数据库名称 = CBS。我真的很困惑,因为当我使用terminal,访问 mysql 时mysql administratormysql query browser我使用了上面提到的那些身份验证,一切都很好。我的问题是当我在我的 Java 应用程序中配置我的 jdbc.properties 时,我收到了这个错误:

org.springframework.web.util.NestedServletException:请求处理失败;嵌套异常是 org.springframework.jdbc.UncategorizedSQLException: Hibernate operation: Cannot open connection;SQL [???] 的未分类 SQLException;SQL状态[28000];错误代码[1045];用户'root'@'localhost'的访问被拒绝(使用密码:YES);嵌套异常是 java.sql.SQLException: Access denied for user 'root '@'localhost' (using password: YES)

我的配置文件 jdbc.properties:

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

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

4

2 回答 2

5

您的框架很可能是以127.0.0.1. 如果您没有定义适当的域范围凭据,这将在 MySQL 中产生登录问题。试试这个来验证:

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 套接字。

于 2012-02-15T23:59:50.320 回答
3

您可能必须授予访问数据库的权限。

查看 MySQL 文档中的内容,如下所示:

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

“pmt”只是上面的一个例子。我碰巧将数据库名称、用户名和密码都设置为相同的。我不建议将其作为最佳实践。这只是我为一些本地发展所做的事情。

我个人不喜欢授予对任何应用程序的 root 访问权限。即使是玩具应用程序,我也不会使用 root 用户名和密码。创建新用户并授予适当的权限并不需要太多努力。

于 2012-02-15T23:50:44.497 回答