无法创建 PoolableConnectionFactory(用户 ''@'localhost' 的访问被拒绝

2023-11-22

在过去的几天里,我一直在尝试为网络应用程序设置 DatabaseConnectionPool,但没有成功。我已经阅读了 Tomcat 文档的相关部分以及围绕该主题的大量内容,并认为我做的一切都是正确的,但显然不是因为我不断收到以下错误:

Cannot create PoolableConnectionFactory (Access denied for user ''@'localhost' (using password: YES))

当我启动 Tomcat 运行时,我没有收到错误消息,但是当我尝试运行以下 servlet 时,我没有收到错误消息:

package twittersearch.web;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
import java.sql.*;
import javax.sql.*;
import javax.naming.*;
import twittersearch.model.*;
public class ConPoolTest extends HttpServlet {

    public void doGet(HttpServletRequest request,
                  HttpServletResponse response) 
                  throws IOException, ServletException {
        Context ctx = null;
        DataSource ds = null;
        Connection conn = null;
        try {
            ctx = new InitialContext();
            ds = (DataSource)ctx.lookup("java:comp/env/jdbc/twittersearchdb");
            conn = ds.getConnection();
            if(conn != null) {
                System.out.println("have a connection from the pool");
            }
        } catch(SQLException e) {
            e.printStackTrace();
        } catch(NamingException e) {
            e.printStackTrace();
        } finally {
            try {
                if(conn!=null) {
                    conn.close();
                }
            } catch(SQLException e) {
                e.printStackTrace();
            }
        }
    }
}

Web 应用程序的上下文是:

<?xml version='1.0' encoding='utf-8'?>
<Context>

    <!-- Configure a JDBC DataSource for the user database -->
 <Resource name="jdbc/twittersearchdb" 
           type="javax.sql.DataSource" 
     auth="Container" 
     user="root" 
     password="mypwd" 
     driverClassName="com.mysql.jdbc.Driver" 
     url="jdbc:mysql://localhost:3306/twitter" 
     maxActive="8" 
     maxIdle="4"/>


</Context>

我真正不明白的是,当我指定该用户时,为什么错误没有说“root”@“localhost”的访问被拒绝。

我尝试过的:

我有重复的 context.xml 吗?不,我删除了 Tomcat 6.0/conf 中的默认 on。我尝试将 context.xml 放入 [mywebappname]/META-INF/context.xml 中,但这不仅不起作用,而且导致创建了一个名为 TwitterSearch.xml 的文件,该文件是自动生成的并放入 Tomcat 6.0/conf 中/Catalina/localhost 目录。所以现在我只是编辑那个,这是我唯一的一个。

是Tomcat的版本吗?好吧,我完全重新安装了最新版本的 Tomcat 6.0,所以我认为不是这样的。

我们是否缺少一些罐子?我有 tomcat-dbcp.jar、jconnector.jar 以及我认为应该在 Tomcat 6.0/lib 目录中的所有其他文件。

当我查看 MySQL 数据库中的密码时,出于安全目的,它们似乎被编码成一个长字母数字字符串。这是正常的吗?我应该将其放在 context.xml 中还是只使用普通密码?

我真的不知道如何解决这个问题,非常感谢一些专家的建议。

提前谢谢了。

Joe


你的设置看起来不错。这看起来纯粹是权限问题。

您需要授予该用户访问 mysql 的权限。虽然 Java 将连接到 localhost,但它将使用 tcp/ip 来连接 - 但是在 mysql 中,localhost 和 127.0.0.1 具有不同的含义。发出这个 SQL 应该可以解决问题。

grant all on twitter.* to 'root'@'127.0.0.1' identified by 'mypwd';

假设 Java 将“localhost”解析为 127.0.0.1,如果仍然无法正常工作,您可以尝试将连接字符串更改为“jdbc:mysql://127.0.0.1:3306/twitter”

我应该在我的 context.xml 中包含这个吗 或者只是普通的密码?

正如您现在所拥有的,明文密码。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法创建 PoolableConnectionFactory(用户 ''@'localhost' 的访问被拒绝 的相关文章

随机推荐

  • jQuery 单击除 div 及其子元素之外的所有内容

    我想在单击任意位置时执行某些操作 但单击 div 及其子级时除外 这是我到目前为止所尝试过的 但它不起作用 单击它的子级仍然会执行括号内的内容 body on click not calculator function e 我不能使用这样的
  • 动态更改android gridview中的列号?

    我的应用程序在 gridview 中以横向显示图像图标 为此 我使用 xml 作为
  • 根据一列对另一列进行排序

    我想根据 B 列的值对 A 列进行排序 在 Google 表格中 这很简单 SORT A1 A100 B1 B100 TRUE 如何做到这一点Excel 要手动执行此操作 您可以突出显示要排序的所有列 然后单击 主页 选项卡中 排序和过滤
  • 在 Matplotlib 极坐标图上设置径向轴

    我正在极坐标图上绘制方位角 仰角曲线 其中仰角是径向分量 默认情况下 Matplotlib 绘制从中心 0 到周边 90 的径向值 我想扭转它 所以 90 度是在中心 我尝试通过调用 ax set ylim 90 0 设置限制 但这会导致抛
  • 如何使用数据关闭来关闭引导面板?

    我有一个打开面板的按钮 我希望能够像使用警报一样关闭它 Bootstrap 文档中的默认面板示例 div class panel panel default div class panel heading Panel heading wit
  • Python dask 数组对象的项分配

    我创建了一个 Python dask 数组 并尝试按如下方式修改数组的一部分 import numpy as np import dask array as da x np random random 20000 100 100 Creat
  • 无法克隆存储库:致命:R 任何 gitolite-admin gitolite 均被 Fallthru 拒绝

    我正在设置gitolite第一次 我正在跟进本说明 当我 ssh 时 看起来很好 ssh p 2222 gitolite debian PTY allocation request failed on channel 0 hello git
  • std::allocator 构造/销毁与放置 new/p->~T()

    对于我的一个项目 我正在从头开始编写一些 STL 容器 我有我的理由 由于我如此密切地模仿 STL 的功能和接口 因此我会尽最大努力遵守 如果它与标准结构同名 它将尽可能符合标准 的政策 因此 当然我的容器将分配器作为模板参数 这非常好 因
  • NGINX“Access-Control-Allow-Origin”标头包含多个值

    我有一个带有 PHP 的 NGINX 服务器 假设主机名为http myserver com 我有一个 PHP 脚本 我正在通过 XHR 从本地主机上的网页访问该脚本 我将它用作类似于 freegeoip net 的 GeoIP 服务器 我
  • 将行从一个表复制到另一个表,忽略重复项

    我有 2 个具有相同架构的表 srcTable1 和 destTable 我试图将所有行从 srcTable 复制到 destTable 并忽略重复项 我想我可以添加一个带有子查询的 WHERE 子句 该子查询只会给我不重复的行 然而 它似
  • android.widget.Button 无法转换为 android.widget.EditText

    在开发我的第一个 Android 计算器应用程序时 我通过意图传递答案 成功更新了新活动中的 TextView 但这需要用户按 返回 来执行另一次计算 我试图让 doCalculation 按钮更新 MainActivity 中的简单 Te
  • unix 套接字上的原子写入?

    我正在尝试选择pipes and Unix 套接字对于IPC机制 两者都支持select and epoll 功能很棒 现在 管道具有 4kB 截至今天 的 原子 写入 这是由 Linux 内核保证的 unix 套接字是否存在这样的功能 我
  • OpenCV 中未记录的 groupRectangles 变体

    在OpenCV中的cascadeDetect cpp中 有以下几种变体groupRectangles功能 void groupRectangles std vector
  • 了解 JavaScript 中的事件队列和调用堆栈

    当我解决这个问题时 我对理解 事件队列 和 调用堆栈 概念的好奇心开始了 var list readHugeList var nextListItem function var item list pop if item process t
  • 构建参数化的 EntityFramework 核心表达式

    你好 我正在尝试构建一个表达式来通过主键获取通用实体并获取参数化的 SQL 查询 目前我可以获得正确的 WHERE 查询 但它没有参数化 public async Task
  • 将侦听器添加到通过 XTemplate 创建的 DOM 的正确技术?

    我们使用 XTemplates 很多 XTemplates 它们非常适合显示只读内容 但是您是否曾向通过模板创建的 DOM 添加 Ext JS 侦听器 您愿意分享您创建这些侦听器的首选技术吗 我首选的技术是使用类似的 live来自 jque
  • 有没有办法从 DataContract 导出 XSD 架构

    我正在使用 DataContractSerializer 将我的类序列化为 XML 或从 XML 反序列化 一切工作正常 但在某些时候我想为这些 XML 文件的格式建立一个独立于实际代码的标准架构 这样 如果序列化过程中出现问题 我可以随时
  • HTML 中所有锚点的一般偏移量?

    我有一些锚元素 但它们位于绝对位置 div 并且 div 的内容太大 以至于它在内部滚动 溢出 自动 div 中的所有条目顶部都有一个锚点 但是如果我转到这个锚点 我想要的元素直接位于侧面的顶部 但我希望它位于中心 我需要像偏移这样的东西
  • Java - 类方法可以看到同类参数的私有字段

    我遇到了一个相当奇怪的行为 不确定这是 Java 问题还是 Eclipse 的问题 采取以下代码 class Foo private String text public void doStuff Foo f System out prin
  • 无法创建 PoolableConnectionFactory(用户 ''@'localhost' 的访问被拒绝

    在过去的几天里 我一直在尝试为网络应用程序设置 DatabaseConnectionPool 但没有成功 我已经阅读了 Tomcat 文档的相关部分以及围绕该主题的大量内容 并认为我做的一切都是正确的 但显然不是因为我不断收到以下错误 Ca