这是我尝试过的,从clojure.java.jdbc开始,以及包含数据库连接详细信息的地图:
(:require '[clojure.java.jdbc :as j]))
(def mysql-db {:dbtype "mysql", :dbname "changelog_development", :user "root", :password "", :useSSL true, :verifyServerCertificate false}
首先我尝试使用execute,但它无法使用给定的连接配置,因为数据库尚不存在:
(j/execute! mysql-db "CREATE DATABASE changelog_development") ;; MySQLSyntaxErrorException Unknown database 'changelog_development'
所以我删除了dbname
密钥并再次尝试,但错误显示我缺少参数:
(j/execute! (dissoc mysql-db :dbname) "CREATE DATABASE changelog_development") ;; IllegalArgumentException db-spec {:dbtype "mysql", :user "root", :password "", :useSSL true, :verifyServerCertificate false} is missing a required parameter
答案 0 :(得分:4)
clojure.java.jdbc
连接规范有许多可能的格式。包含:dbtype
,:user
等密钥的密码要求您同时指定:dbname
。
您也可以使用连接URI指定连接规范,然后再次执行语句:
{:connection-uri "jdbc:mysql://localhost/?user=root&password="}