java - 2 个数据库,一个可以通过 LAN 使用,另一个必须是本地主机,为什么?

标签 java mysql netbeans

我有2个数据库:harrington,我自己创建的,pacsdb是我继承的。这两个都位于同一个 MySQL 数据库中。我正在使用 Netbeans 来调试。在 Netbeans 中,我可以通过以下方式连接到数据库

jdbc:mysql://192.168.0.100:3306/harrington?zeroDateTimeBehavior=convertToNull [fiji on Default schema]
jdbc:mysql://192.168.0.100:3306/pacsdb?zeroDateTimeBehavior=convertToNull [pacs on Default schema]
jdbc:mysql://localhost:3306/pacsdb?zeroDateTimeBehavior=convertToNull [pacs on Default schema]

对于我自己的数据库,harrington,我在 Netbeans 或我自己的 Java 程序中都没有问题。 Pacsdb 不会使用 192.168.0.100 进行连接,但会使用 localhost 进行连接。在我的程序中它给出了

java.sql.SQLException: Access denied for user 'pacs'@'192.168.0.100' (using password: YES)

为了检查发生了什么,我查询了 sql 数据库表“user”。我发现两个用户都使用“%”作为主机,这正是我对代码的期望

        sql = "create user 'pacs'@'%' identified by 'pacs'";
        OK1 = executeStatement(stm1, sql);
        if(OK1) {
            sql = "grant all on pacsdb.* to 'pacs'@'%' identified ";
            sql += "by 'pacs1' with grant option";
            executeStatement(stm1, sql);
            sql = "flush privileges";
            executeStatement(stm1, sql);
        }

当我查询 sql 'db' 表时,我确实发现了差异。我得到了 2 个条目

Host      Db         User
%         harrington fiji
localhost pacsdb     pacs

我尝试删除 localhost 的 pacsdb 条目,并插入 pacsdb 的新条目,并将主机设置为“%”。显然这不是从本地主机更改的方法,因为我很难到达 pacsdb。我从“db”中删除了该条目,并插入了一个新条目,并将“%”设置回“localhost”。这让我重新上线并出现访问被拒绝错误。

所以我的问题是:如何从“localhost”更改为“%”?

最佳答案

问题不在于查询,而在于与数据库的连接。

MySql 可以限制从不同于本地主机的 IP 访问它的用户的访问。

可能您没有权限从您的IP访问数据库。

尝试使用以下命令添加正确的权限

GRANT ALL PRIVILEGES
ON database.*
TO 'user'@'*'
IDENTIFIED BY 'newpassword';

显然您无法远程连接来执行该命令。您需要通过 SSH 在远程计算机上输入并在本地启动该命令。

关于java - 2 个数据库,一个可以通过 LAN 使用,另一个必须是本地主机,为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35017856/

相关文章:

java - 找到原始类型,缺少泛型类的返回参数

java - 多个单选按钮的 Action 监听器

unit-testing - 是否可以从NetBeans运行grails单个grails单元测试类?

java - 方法 : The local variable editText may not have been initialized 中带有 EditText 的 AlertDialog

java - RMI 连接在本地主机上被拒绝

java - 如何编写 Java 调试器命令行工具 (jdb) 的脚本?

java - 如何降低java中的圈复杂度?

php - 如何从数据库中获取特定月份的数据?

mysql - SQL-如何将两个表与具有不同条件的两个表计数组合起来

mysql - 为什么此搜索查询不返回任何内容?