JDBC Hibernate - Mysql连接错误

Nin*_*Boy 3 java mysql hibernate jdbc ubuntu-11.10

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

org.springframework.web.util.NestedServletException:请求处理失败; 嵌套异常是org.springframework.jdbc.UncategorizedSQLException:Hibernate操作:无法打开连接; 未分类的SQL的SQLException [???]; SQL状态[28000]; 错误代码[1045]; 用户'root'@'localhost'访问被拒绝(使用密码:YES); 嵌套异常是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
Run Code Online (Sandbox Code Playgroud)

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

Per*_*ion 5

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

mysql -uroot -proot
SELECT * from mysql.user WHERE user = 'root';
Run Code Online (Sandbox Code Playgroud)

如果没有'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;
Run Code Online (Sandbox Code Playgroud)

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