如何解决TestContainers和Mysql:对用户“ @'172.17.0.1”的访问被拒绝使用密码:否
我写了一个简单的存储库来测试Kotlin Exposed with TestContainers。我使用的数据库是mysql。
这是我的代码:
class StudentsRepositoryTest: ShouldSpec({
val container = getMysqlContainer()
val mysqlJdbcUrl = container.jdbcUrl
beforeSpec {
Database.connect(mysqlJdbcUrl,"com.mysql.cj.jdbc.Driver")
transaction {
SchemaUtils.create(Students)
}
}
... // some tests
private fun getMysqlContainer(): MySQLContainer<Nothing> {
return MySQLContainer<Nothing>("mysql:5.7").apply {
withUsername("root")
withPassword("")
withEnv("MYSQL_ROOT_PASSWORD","%")
withDatabaseName("test")
start()
}
}
代码在beforeSpec
Access denied for user ''@'172.17.0.1' (using password: NO)
也许我错过了一些东西,将不胜感激
我使用的库:
- kotest
- kotest-extension-testcontainers
- 测试容器
- testcontainers-mysql
解决方法
我终于找到了我问题的答案。原因是我忘记将用户名和密码传递给与Exposed库的连接。
val mysqlJdbcUrl = container.jdbcUrl
val username = container.username
val password = container.password
Database.connect(mysqlJdbcUrl,"com.mysql.cj.jdbc.Driver",username,password)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。