You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Slick 3.4.1连接MySQL报错及网络连通性问题求助

问题解决指南:Slick 3.4.1 + Scala 2.12 连接 MySQL 报错处理

一、关于 ping 127.0.0.1:3306 报错的问题

  • 错误原因:ping 命令基于ICMP协议,不支持直接指定TCP端口号,所以会出现「Name or service not known」的错误,这和MySQL是否运行没有直接关联。
  • 正确检查TCP端口连通性的方式:
    • 使用 telnet:telnet 127.0.0.1 3306
    • 使用 nc(netcat):nc -zv 127.0.0.1 3306
  • 确认MySQL服务状态:
    • Linux系统:执行 systemctl status mysql,查看服务是否处于active (running)状态
    • Windows系统:打开「服务」列表,找到MySQL服务,确认其状态为「正在运行」

二、关于 org.h2.Driver does not know how to handle URL jdbc:mysql://localhost:3306/Test 的问题

  • 核心问题:驱动类与JDBC URL不匹配——代码里配置了H2数据库的驱动,但使用的是MySQL的JDBC连接地址,两者完全不兼容。
  • 解决步骤:
    1. 替换驱动类:把配置中的org.h2.Driver改成MySQL的驱动类:
      • MySQL 8.x版本用 com.mysql.cj.jdbc.Driver
      • MySQL 5.x版本用 com.mysql.jdbc.Driver
    2. 添加正确的依赖:在build.sbt中引入MySQL JDBC驱动和Slick的MySQL支持:
      libraryDependencies ++= Seq(
        "com.typesafe.slick" %% "slick" % "3.4.1",
        "com.typesafe.slick" %% "slick-hikaricp" % "3.4.1", // 连接池依赖
        "mysql" % "mysql-connector-java" % "8.0.33" // 版本需匹配你的MySQL服务
      )
      
    3. 修正Slick的数据库Profile:确保代码中引入并使用MySQL的Profile:
      import slick.jdbc.MySQLProfile.api._
      
      val db = Database.forConfig("mysqlDB") // 对应配置文件中的MySQL参数节点
      
    4. 配置文件示例(application.conf):
      mysqlDB {
        dataSourceClass = "com.zaxxer.hikari.HikariDataSource"
        properties {
          driver = "com.mysql.cj.jdbc.Driver"
          url = "jdbc:mysql://localhost:3306/Test?useSSL=false&serverTimezone=UTC"
          user = "你的MySQL用户名"
          password = "你的MySQL密码"
        }
        numThreads = 10
      }
      

内容的提问来源于stack exchange,提问作者StoCa_overflow

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 11:45:38