我知道SO上有很多关于这个论点的主题,但我认为我的不同,或者我无法找到它。 我使用play framework 2.6,我的application.conf看起来像这样:
default.db = {
url="jdbc:mysql://xxx.xxx.rds.amazonaws.com/dbname"
host="xxx.xxx.rds.amazonaws.com"
driver="com.mysql.jdbc.Driver"
username="root"
password="password"
}
编辑:其他一些可能很重要的部分:
slick.dbs.default.driver = "slick.driver.MySQLDriver$"
play.http.secret.key="KVNU8u1lFSV_eNdfc=6oMnP@M<bH4YS<ZJqC5954p@S>=PiXwusl:vf>RWL2w_=D"
play.filters.hosts.allowed = ["."]
我不断得到这个:
java.sql.SQLException: Access denied for user ''@'19.345.16.16' (using password: YES)
经过多次尝试,我也得到了这个:
SQLTransientConnectionException: ec2 - Connection is not available, request timed out after 1000ms.]
为什么要尝试连接空用户? 我已经尝试过没有&#34;&#34;和许多其他组合..
编辑:我将其与空白字段(&#39;&#39;)用户联系,因此允许类型&#39; @&#39;%&#39;的用户,但我仍然需要弄清楚为什么光滑尝试与匿名用户连接。现在,application.conf的合理部分是:
slick.dbs.default.profile = "slick.jdbc.MySQLProfile$"
slick.dbs.default.db = {
url="jdbc:mysql://xxx.xxx.us-west-2.rds.amazonaws.com/metamusic"
host="xxx.xxx.us-west-2.rds.amazonaws.com"
driver="com.mysql.jdbc.Driver"
username=aa_admin
password="password"
keepAliveConnection = true
connectionPool = disabled
}
答案 0 :(得分:0)
尝试
mysql -u root -p
CREATE USER '<<username>>'@'%%' IDENTIFIED BY '<<password>>';
GRANT ALL PRIVILEGES ON * . * TO '<<username>>'@'%%';
FLUSH PRIVILEGES;
尝试登录MYSQL
答案 1 :(得分:0)
在您发布的应用程序配置中,您拥有用户名root。假设这是数据库身份验证凭据,您可能错误地设置了该凭据。 应该使用root的唯一时间是系统管理员,在localhost上。
拥有正确的数据库用户名&amp;配置密码后,您的错误应该消除。
之前发布的授权内容是准确的,但同样......没有人使用&#39; root&#39;。
答案 2 :(得分:0)
对于原始问题:
java.sql.SQLException: Access denied for user ''@'19.345.16.16' (using password: YES)
我同意nitin.sharma0180的回答,这听起来像是MySQL用户权限错误和/或密码在转移到托管数据库的服务器时丢失了。尝试检查您使用的用户是否对数据库和表具有明确的权限,或者由于字符编码而导致密码错误。
如果前一个不起作用,那么它将取决于您如何通过Play 2.6 Framework连接到您的数据库。您使用的是JPA,直接使用JDBC还是其他?要回答这个问题,请检查您的build.sbt,您的application.conf以及正在导入项目的Play 2模块。
答案 3 :(得分:0)
我刚看了一下我们自己的配置,但事情有点不同:
A
注意default.db vs db.default。