如何在Slick中为MySQL连接设置socketTimeout?

时间:2019-05-07 20:19:42

标签: scala slick hikaricp

在Slick 3库中使用HikariCP来配置连接池。

根据HikariCP Rapid-Recovery,为了能够“从数据库重新启动或网络分区事件中恢复”,建议设置socketTimeout as its disabled by default.

问题是如何在slick中设置socketTimeout?

1 个答案:

答案 0 :(得分:1)

在application.conf中,将socketTimeout添加为JDBC URL的一部分

db {
  profile = "slick.jdbc.MySQLProfile$"
  db {
    url = "jdbc:mysql://localhost:3306/dbname?socketTimeout=30000"
    driver = com.mysql.cj.jdbc.Driver
    user = "<user>"
    password = "<password>"
  }
}

来自MySQL Connector/J 8.0 documentation

  

可以在以下任一设置配置属性   可以通过以下方式:

     
      
  • 在jdbc url的MySQL实现上使用set *()方法   java.sql.DataSource(使用时的首选方法   java.sql.DataSource的实现)
  •   
  • 作为传递给DriverManager.getConnection()或Driver.connect()的java.util.Properties实例中的键值对
  •   
  • 作为URL中的JDBC URL参数
  •