Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JDBC Hibernate-Mysql连接错误_Java_Mysql_Hibernate_Jdbc_Ubuntu 11.10 - Fatal编程技术网

Java JDBC Hibernate-Mysql连接错误

Java JDBC Hibernate-Mysql连接错误,java,mysql,hibernate,jdbc,ubuntu-11.10,Java,Mysql,Hibernate,Jdbc,Ubuntu 11.10,我的Ubuntu11.10桌面上有一个本地mysql服务器。主机名=本地主机;用户名=根;密码=根;数据库名称=CBS。我真的很困惑,因为当我使用终端、mysql管理员和mysql查询浏览器访问mysql时,我使用了上面提到的身份验证,一切都正常。我的问题是,在Java应用程序中配置jdbc.properties时,出现以下错误: org.springframework.web.util.NestedServletException:请求处理失败;嵌套异常为org.springframework

我的Ubuntu11.10桌面上有一个本地mysql服务器。主机名=本地主机;用户名=根;密码=根;数据库名称=CBS。我真的很困惑,因为当我使用
终端
mysql管理员
mysql查询浏览器
访问mysql时,我使用了上面提到的身份验证,一切都正常。我的问题是,在Java应用程序中配置jdbc.properties时,出现以下错误:

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

我的配置文件jdbc.properties:

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

顺便说一下,我之所以使用本地服务器,是因为我们的主服务器关闭了,所以我必须使用本地mysql继续我的项目。请帮帮我。。。提前感谢。

您可能需要授予访问数据库的权限

请查看MySQL文档,了解如下内容:

create database pmt;
create user pmt identified by 'pmt';
grant all on pmt.* to 'pmt'@'%';
“pmt”只是上面的一个例子。我碰巧使数据库的名称、用户名和密码都相同。我不建议将其作为最佳实践。这只是我为当地发展所做的事情


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

您的框架很可能正在以
127.0.0.1
的身份登录本地数据库。如果您没有定义适当的域范围凭据,这将在MySQL中产生登录问题。请尝试以下操作以验证:

mysql -uroot -proot
SELECT * from mysql.user WHERE user = 'root';
如果没有“根”@“127.0.0.1”,则在发现问题后,请执行以下两种操作之一:

  • 在“127.0.0.1”处为“root”定义域范围的凭据
  • 为“根”定义通配符域范围的凭据,以便 从多个位置使用这些凭据登录MySQL
  • 下面是第二个例子:

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

    另一方面,我绝对建议您在用户id和密码上使用更具创造性的东西。特别是当您的服务器启用了TCP套接字时。

    使用mysql adminstrator(或其他工具)时,您的主机名是什么?正如duffymo在下面提到的,您可能会因为该用户连接到本地主机而出现授权问题。我在邮件的第一部分没有看到任何关于主机名的内容。您是否使用根凭据运行“java应用程序”?当你的应用程序运行时-使用“ps-ef | grep”检查它并查看哪个用户正在运行它-如果不是“root”,你的答案就在那里。执行这些命令后我必须重新启动服务器吗?当我运行命令时,从user='root'的用户中选择*;我将使用什么数据库查看是否有“root”@“127.0.0.1”?实际上,这个命令是
    select*from mysql.user,其中user='root'。我更新了我的答案。我看到了很多像“+”和“-”这样的随机字符。然而,我看到了这行:| localhost | root |*81F5E21E35407D884A6CD4A731AEBFB6AF209E1B | Y | Y。这是否意味着我有一个根?恩,帮我一个忙,在mysql
    中执行这个命令,从用户选择user,host from user
    ,并告诉我有多少行显示了用户“root”,以及这些行的主机字段是什么。我有8行。我看到user=root和host=localhost。