首页 > 解决方案 > HikariCP总是使用mysql root?

问题描述

自从 mariadb 取代了常规的 mysql 以来,我在运行我的 Java 项目时遇到了一些问题。我找到了新的 .cnf,即 50-server.cnf,将绑定地址更改为 0.0.0.0,重新加载了 mysql 和 mariadb,我运行了常用的 mysql 命令来授予我使用的 mysql 用户的所有权限(我没有忘记刷新权限)。我也尝试用 iptables 打开 3306 端口,尽管这只是本地操作。

java错误显示与root连接有问题

com.zaxxer.hikari.pool.HikariPool$PoolInitializationException: Failed to initialize pool: Could not connect to address=(host=localhost)(port=3306)(type=master) : (conn=37) Access denied for user 'root'@'localhost'
    at com.zaxxer.hikari.pool.HikariPool.throwPoolInitializationException(HikariPool.java:595)
    at com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:581)
    at com.zaxxer.hikari.pool.HikariPool.<init>(HikariPool.java:115)
    at com.zaxxer.hikari.HikariDataSource.<init>(HikariDataSource.java:81)
    at fr.mathwellan.dispenser.utils.HikariSQL.<init>(HikariSQL.java:37)

即使我实际上并没有尝试与 root 连接

HikariConfig hikariConfig = new HikariConfig();
hikariConfig.setMaximumPoolSize(10);
hikariConfig.setDriverClassName("org.mariadb.jdbc.Driver");
hikariConfig.setJdbcUrl("jdbc:mariadb://localhost:3306/database");
hikariConfig.setUsername("notroot"); // here, it's a custom user
hikariConfig.setPassword("psswd");

hikariConfig.setConnectionTimeout(1000L);
hikariConfig.addDataSourceProperty("autoReconnect", true);
hikariConfig.addDataSourceProperty("cachePrepStmts", true);
hikariConfig.addDataSourceProperty("prepStmtCacheSize", 250);
hikariConfig.addDataSourceProperty("prepStmtCacheSqlLimit", 2048);
hikariConfig.addDataSourceProperty("useServerPrepStmts", true);
hikariConfig.addDataSourceProperty("cacheResultSetMetadata", true);

new HikariDataSource(hikariConfig); // line 37

我尝试使用不同版本的 HikariCP,它并没有改变任何事情

我希望有人比我更了解发生了什么,我已经进行了一些谷歌搜索,但每个有这个错误的人似乎都在他们的代码中使用 root

标签: javamariadbmysql-connectorhikaricp

解决方案


推荐阅读