我是Vapor的新手,我想尝试连接我的MySQL数据库。我在官方文档中找到了如何执行此操作,但当我尝试发送查询时,它会抛出一个错误:

No services are available for 'DatabaseConnectionPoolCache'. (Container.swift:112)

我只是复制粘贴文档中的代码,但它不起作用。有人能帮我找出原因吗?

我有

MySQL @ 5.7

莫哈韦

. 实际上,简单的请求工作得很好,例如:

router.get("hey") { req in

return "Stas, hey"

}

configure.swift中的代码:

import FluentSQLite

import MySQL

import Vapor

/// Called before your application initializes.

public func configure(_ config: inout Config, _ env: inout Environment, _ services: inout Services) throws {

/// Register providers first

try services.register(FluentSQLiteProvider())

try services.register(MySQLProvider())

/// Register routes to the router

let router = EngineRouter.default()

try routes(router)

services.register(router, as: Router.self)

/// Register middleware

var middlewares = MiddlewareConfig() // Create _empty_ middleware config

/// middlewares.use(FileMiddleware.self) // Serves files from `Public/` directory

middlewares.use(ErrorMiddleware.self) // Catches errors and converts to HTTP response

services.register(middlewares)

// Configure a SQLite database

let sqlite = try SQLiteDatabase(storage: .memory)

/// Register the configured SQLite database to the database config.

var databases = DatabasesConfig()

databases.add(database: sqlite, as: .sqlite)

services.register(databases)

/// Configure migrations

var migrations = MigrationConfig()

migrations.add(model: Todo.self, database: .sqlite)

services.register(migrations)

//Configure a MySQL database

let mysql = try MySQLDatabase(config: MySQLDatabaseConfig(

hostname: "127.0.0.1",

port: 3306,

username: "root",

password: "7374",

database: "WORK_TIME"))

///Register to the congig

var mysqlDatabases = DatabasesConfig()

mysqlDatabases.add(database: mysql, as: .mysql)

services.register(mysqlDatabases)

}

我在main.swift中的查询:

public struct MySQLVersion: Codable {

let version: String

}

router.get("sql") { req in

return req.withPooledConnection(to: .mysql) {conn in

return conn.raw("SELECT @@version as version")

.all(decoding: MySQLVersion.self)

}.map { rows in

return rows[0].version

}

}

它应该返回我的MySQL版本,但它抛出了一个奇怪的错误。

vapor mysql_无法在Vapor项目中连接我的MySQL数据库相关推荐

  1. web项目中保存emoji到mysql数据库

    1.创建utf8mb4的数据库 2.如果导入sql文件,注意修改字段的字符为utf8mb4 3.web项目jdbc连接仍写做utf8 jdbcUrl=jdbc:mysql://localhost/de ...

  2. VS2010环境下用c++语言在MFC对话框程序中连接及操作Mysql 数据库

    小编近来由于工作需要,需要折腾一下MySql据库, 由于以前用的数据库不是 MySql, 也不是在 VS2010 , 更不是在 MFC 中连接数据库.所以还颇费了一番周折才实现了把数据插入到数据库表格 ...

  3. 在idea中连接Linux的mysql数据库(我的一生之敌防火墙)

    我发现我一生最大的敌人就是防火墙. 这是报错信息: 起初我已为是我连接数据库的配置有问题然后我就试了试主机上面的mysql结果意外发现我代码和配置文件都没有错. 然后我又尝试连接远程数据库也就是阿里云 ...

  4. LJL-Solution-vss2005在项目中连接不上 解决方案

    vss2005 在单独打开的时候可以连接上,在项目中连接不上的解决方案: 打开vs-->工具-->选项--->源代码管理--->当前源代码管理插件:改为 Microsoft V ...

  5. executequery方法_在IDEA的maven项目中连接使用MySQL8.0方法教程

    首先看一下我的基本的开发环境: 操作系统:MacOS 10.13.5编辑器:IDEA 2018.3其他:MySQL8.0.15.Maven 3.3.9.JDK 1.8 好,下面就正式开始: 第一步:在 ...

  6. java web access_Java Web项目中连接Access数据库的配置方法

    本文是对前几天的"JDBC连接Access数据库的几种方式"这篇的升级.因为在做一些小项目的时候遇到的问题,因此才决定写这篇博客的.昨天已经将博客公布了.可是后来经过一些验证有点问 ...

  7. cpp导入excel到mysql_将EXCEL表格中的数据导入mysql数据库表中

    本文转载自http://blog.sina.com.cn/s/blog_5d972ae00100gjij.html 今天项目上遇到需要将excel中的数据导入到数据库的classify表中,于是乎拼命 ...

  8. JAVA通过JDBC连接并操作MySQL数据库

    JAVA通过JDBC连接并操作MySQL数据库 JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提 ...

  9. Oracle 10g 中通过DBLink访问MySQL数据库

    前一阵在公司通过Oracle访问MySQL,测试环境:CentOS5_X64, Oracle10g_X64, MySQL5 . 把一些经验分享给大家! 1, 首先在Oracle所在计算机安装MySQL ...

最新文章

  1. webkit入门准备
  2. TF学习——TF数据读取:TensorFlow中数据读这三张图片的5个epoch +把读取的结果重新存到read 文件夹中
  3. jmeter 插件 监视器 图形界面使用
  4. 都快2022年了GraphQL还值得学吗?
  5. 合成迪丽热巴下海_热巴生图颜值回春,被韩媒吹上天,她是找了杨幂的医生?...
  6. EIGRP特性试验笔记
  7. 起泡排序算法_气泡排序算法
  8. Python定义函数及引用
  9. Meta标签中的viewport属性及含义
  10. BZOJ1064[NOI2008] 假面舞会
  11. Swift开发之简单计算器项目
  12. Linux系统的镜像文件下载
  13. 2021-11-09 jQuery常用方法及事件
  14. background url怎么填充_CSS background 属性
  15. 个人网站建设记录 及Markdown使用实践
  16. 攻防比赛中系统层漏洞挖掘-身份隐藏解决方案
  17. ubuntu 8.10安装配置经验(Intrepid Ibex)——转载
  18. 2007年开关稳压电源设计报告!!!
  19. SQL Server查看库、表占用空间大小
  20. 2021-2027全球与中国半导体封装基板(IC载板)市场现状及未来发展趋势

热门文章

  1. git命令大全:一张图学会git命令
  2. 仿iphone动态萤火虫锁屏应用安卓源码
  3. 扁平化iOS风商务工作汇报PPT模板
  4. 试用SQL语句创建一个工资总额超过20万元(含20万元)的各部门工资总额视图V-SAL...
  5. 最近笔记本主板等硬件故障的一些经验教训
  6. TS2550: Property ‘entries‘ does not exist on type ‘ObjectConstructor‘.
  7. 使用CSS实现简单的图片切换(轮播图)
  8. 5.5 C语言练习(数日子:要求输出三个整数,分别代表年月日。例如 2018 7 19 当2018年1月1日为第一天,那么7月19日是第多少天?)
  9. Oracle三级联动单表地址数据 1
  10. 【Unreal Engine 4】虚拟试衣镜