Help us understand the problem. What is going on with this article?

VaporとMySQLの接続時に出たエラーの解消法

More than 1 year has passed since last update.

1. はじめに

VaporとMySQLの接続方法については以下の記事、サイトを参照しました。
Tutorial: How to use MySQL
VaporとMySQLを接続する。その1
VaporとMySQLを接続する。その2
Vapor公式ドキュメント

環境は以下の通り
MySQL: 8.0.15
Swift: 4.2.1
Xcode: 10.1
Vapor Toolbox: 3.1.10
Vapor Framework: 3.2.2

2. エラー

エラーメッセージ

stackoverflowの投稿を参照。

引用
From MySQL 8 if you want to use it on localhost (unsecured connection) then you need to disable the MySQL transport layer security. Use unverifiedTLS for transport in MySQLDatabaseConfig initializer.


MySQL8からlocalhost(安全ではない接続)でそれを使う場合、TLS(Transport Layer Security)を無効化する必要がある。MySQLDatabaseConfigを初期化しトランスポートにunverifiedTLSを使用する。

TLS:暗号鍵を使いデータを暗号化し、メッセージ認証コードを使用し改ざんを検出し、デジタル署名で正当な相手との通信をする
unverifiedTLS:TLS(Ver1.1)のミニマムバージョンを必要とするTLSを有効にするが、証明書検証を無効にする。

日本語訳が若干怪しいですが、まとめるとMySQLの直近Verでlocalhostを利用する場合、セキュリティの設定を変更する必要があるみたいです。
セキュリティが脆弱化すると思われますがローカル環境でやる分には大丈夫でしょう。
解決方法は以下の通り。

configure.swiftにtransport: MySQLTransportConfig.unverifiedTLS を追加

   <configure.swift>

    let mysql = MySQLDatabase(config: MySQLDatabaseConfig(
        hostname: "localhost",
        port: 3306,
        username: "root",
        password: "******",
        database: "database",
        transport:  MySQLTransportConfig.unverifiedTLS
    ))
ikeou
2018年11月から東京のプログラミングスクールでプログラミングの勉強をしています。 いけおう@ikeou2でtwitterやってます。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした