scala - 如何在 Slick 中为 MySQL 连接设置 socketTimeout?
问题描述
HikariCP 在 Slick 3 库中用于连接池的配置。
根据HikariCP Rapid-Recovery,为了能够“从数据库重启或网络分区事件中恢复”,建议将socketTimeout 设置为默认禁用。
问题是如何在 slick 中设置 socketTimeout?
解决方案
在 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>"
}
}
可以通过以下方式之一设置配置属性:
- 在 jdbc url java.sql.DataSource 的 MySQL 实现上使用 set*() 方法(这是使用 java.sql.DataSource 实现时的首选方法)
- 作为 java.util.Properties 实例中的键值对传递给 DriverManager.getConnection() 或 Driver.connect()
- 作为 URL 中的 JDBC URL 参数
推荐阅读
- python - 如何在我的 Mac 上运行这个比特币 Python 模型(由 PlanB 提供)?
- mysql - MySQL 聚集索引中的磁盘 IO
- google-bigquery - 如何使用 bq load 命令加载多个 AVRO 文件
- java - Java 什么时候进行类型检查
- react-native - 如果必须构建,如何仅显示更新对话框
- templates - 提供免费模板,无法复制演示
- elisp - Elisp 中计算黄金分割率的高效算法
- android - 使用 Firebase 的 Android 聊天应用程序,但未在 firebase 中存储数据
- spring - 使用 io.jsonwebtoken 获取 JWT
- configuration - SASL Enabled Memcached LIST_MECH 返回空支持机制