我对 java BasicDataSource 连接池有疑问。
我的 ProxySql 在我的所有 DataProc 计算引擎上都正确配置,如果我尝试使用 sqlclient 连接到我的 CloudSql 实例,它可以正常工作。当我尝试从我的连接池连接到我的 CloudSql 时,使用此连接字符串配置:pooljdbc:mysql://127.0.0.1/my_db?serverTimezone=UTC,我收到此错误:
Cannot create PoolableConnectionFactory (Access denied for user 'myuser'@'localhost' (using password: YES))
org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Access denied for user 'myuser'@'localhost' (using password: YES))
at org.apache.commons.dbcp.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:1549)
并且是正确的,因为 proxySQL tcp 连接位于 127.0.0.1 而不是 localhost(unix 套接字)上。
我不明白为什么 BasicDataSource 尝试在 localhost 而不是 127.0.0.1 上连接,因为我在连接字符串中进行了配置。
非常感谢任何帮助。