玩 2.3 scala - Slick 有 MYSQL 问题

Play 2.3 scala - Slick with MYSQL issue

我目前正在使用 MYSQL+Slick 学习 Play Framework。

我已经尝试 this Github sample 来理解 MYSQL+Slick 通信。

即使我提供了正确的数据库凭据和数据库,我仍收到以下异常。

play.api.Configuration$$anon: Configuration error[Cannot connect to database [models]]
    at play.api.Configuration$.play$api$Configuration$$configError(Configuration.scala:94) ~[play_2.11-2.3.8.jar:2.3.8]
    at play.api.Configuration.reportError(Configuration.scala:743) ~[play_2.11-2.3.8.jar:2.3.8]
    at play.api.db.BoneCPPlugin$$anonfun$onStart.apply(DB.scala:247) ~[play-jdbc_2.11-2.3.8.jar:2.3.8]
    at play.api.db.BoneCPPlugin$$anonfun$onStart.apply(DB.scala:238) ~[play-jdbc_2.11-2.3.8.jar:2.3.8]
    at scala.collection.immutable.List.map(List.scala:273) ~[scala-library-2.11.6.jar:na]
Caused by: java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:998) ~[mysql-connector-java-5.1.35.jar:5.1.35]
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3835) ~[mysql-connector-java-5.1.35.jar:5.1.35]
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3771) ~[mysql-connector-java-5.1.35.jar:5.1.35]
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:870) ~[mysql-connector-java-5.1.35.jar:5.1.35]
    at com.mysql.jdbc.MysqlIO.proceedHandshakeWithPluggableAuthentication(MysqlIO.java:1659) ~[mysql-connector-java-5.1.35.jar:5.1.35]

有人知道我该如何解决这个问题吗?

请采取以下行动:

  1. 在mysql中,root用户下:

    CREATE USER 'test1'@'localhost' IDENTIFIED BY 'mypass';
    CREATE DATABASE emp;
    GRANT ALL ON emp.* TO 'test1'@'localhost';
    
  2. 确保您可以作为 'test1' 登录并有权访问 emp 数据库:

    mysql -utest1 -pmypass
    use emp
    
  3. 更改您的 conf/application.conf:

    中的凭据
    db.models.user="test1"
    db.models.pass="mypass"
    ...
    db.default.user="test1"
    db.default.pass="mypass"
    ...
    

然后运行你的申请。这应该可以工作,至少没有连接问题。