java - mysql 和 javax.naming.NamingException

标签 java mysql eclipse tomcat connection-pooling

我正在使用 tomcat 和 mysql(ide 是 eclipse)。 我正在使用连接池。

在 context.xml 中,我有:

 <Resource name="jdbc/mydb" auth="Container" type="javax.sql.DataSource"
          maxActive="100" maxIdle="30" maxWait="10000"
          username="root" password="root" driverClassName="com.mysql.jdbc.Driver"
          url="jdbc:mysql://localhost:3306/mydb" 
          factory="org.apache.tomcat.jdbc.pool.DataSourceFactory" />

一开始我一直在easyphp中使用mysql(root用户没有pwd)。所有的工作。 然后我添加了 pwd 并正确更改了 context.xml(就像现在一样)。

从那时起,我就有了这些异常(exception):

Unexpected exception resolving reference
java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: NO)

Failed to register in JMX: javax.naming.NamingException: Access denied for user    'root'@'localhost' (using password: NO)
lug 13, 2012 9:16:45 AM org.apache.naming.NamingContext lookup
Unexpected exception resolving reference
java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: NO)

“奇怪”的是应用程序在数据库上写入成功。

我已经卸载了 easyphp,并在端口 3306 上安装了 mysql,使用 pwd root 创建了 root 用户。

我获得了相同的异常。

最佳答案

我建议您在遇到问题时剪切并粘贴错误消息中的通用内容。在最坏的情况下,您会感到欣慰,因为您并不孤单或不是第一个;充其量您会看到解决问题的简单方法。

这是我贴的

mysql java.sql.SQLException: Access denied for user 'root'@'localhost'

进入谷歌搜索并学到了很多有趣的东西。你也可以。

我的其他建议是为您的应用程序创建一个单独的用户名和密码,并授予它适当的权限,而不是使用 root。 Root 非常强大,不应将其提供给应用程序,即使应用程序和数据库都是您的。 Root 可以访问每个表,包括系统表。我更喜欢为应用程序创建一个单独的数据库,并仅授予应用程序用户名和密码以完成任务所需的那些权限(例如,除非需要,否则无删除权限;表无 DROP 等)

关于java - mysql 和 javax.naming.NamingException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11467801/

相关文章:

带有httpurlconnection的android api 23中的Java rest api

java - Collections.sort的BigO是什么?

mysql - 如果没有找到特定日期的记录,我想显示 0

PHP 向结果添加计算,推送到结果数组,排序,然后打印

java - ANTLR4 项目不会在 Eclipse 中显示任何内容

Java 远程调试不适用于 Eclipse 或 IntelliJ 。需要帮助

java - 在java中搜索特定记录的数组列表

java - CORS和错误以及Access-Control-Allow-Origin header 的问题

mysql - 物理上存储在DHIS2中的上载/输入的汇总报告的时间戳在哪里,如何从中提取时间戳数据?

java - 无法在 Eclipse Juno 上启动 Glassfish 3.1.2.2