【问题标题】:MYSQL not returning the result in the linux platform, but in windowsMYSQL在linux平台不返回结果,但是在windows
【发布时间】:2014-07-15 03:46:06
【问题描述】:

我在 Eclipse 中将上述代码作为一个 webapp 在 tomcat 中运行。

该项目在windows平台上运行良好,现在我已将其迁移到Linux(OpenSuse 12.3),以下代码从mysql DB返回用户。

@Override
public User getUserByLoginID(String userLogin) {
    log.info("getUserByLoginID(String userLogin)");
    User returnUser = null;
    session = sessionFactory.getCurrentSession();
    Criteria criteria = session.createCriteria(User.class).add(
            Restrictions.eq("userLoginEmail", userLogin));
    if (criteria.list() != null) {
        List<User> users = criteria.list();

        if (users.size() > 1) {
            // Should never happen
            throw new RuntimeException(
                    "Invalid number of users with same login id.");
        }
        if (!users.isEmpty()) {
            returnUser = users.get(0);
        }
    }
    return returnUser;
}

我检查了以下行,users.size(),它在窗口中给出了结果,但在 OpenSuse/Linux 中没有。

我在两台机器上都安装了mysql。 用户存在于两个数据库中。

我怀疑我可能需要为 mysql 数据库配置一些用户/组配置。 任何想法,我该如何进一步调试,排除故障?

任何帮助将不胜感激。

【问题讨论】:

  • 尝试从您的 linux 平台从 java 代码连接到 Windows 上的 db。看看它是否正在获取数据。如果是,那么您的 linux 平台上的 db 设置不正确。
  • 数据库名在linux平台上区分大小写,在windows下不区分大小写。确保用于 Java 查询的数据库名称与 DBMS 中存在的名称匹配。
  • @f1sh,数据库名称大小写正确,因为tomcat可以连接数据库,否则启动时会抛出异常。
  • @f1sh,数据库名大小写正确,但表名大小写不同,但问题是我以用户身份运行时,日志中没有抛出异常。

标签: java mysql linux hibernate tomcat


【解决方案1】:

感谢您的不同意见。 数据库名称大小写正确,但表名称大小写不同,但问题是当我以用户身份运行应用程序时,日志中没有抛出异常。

我以 root 身份登录并尝试以 root 用户身份运行应用程序,这时我可以在日志中看到异常,这促使我朝着正确的方向前进。

【讨论】:

    猜你喜欢
    • 2014-12-04
    • 2020-11-28
    • 2015-05-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-27
    • 2018-08-10
    相关资源
    最近更新 更多