Nugetパッケージの追加
プロジェクトは前回のものを使いまわしてもいいですし、新しく作ってもいいです。
sublimer.hatenablog.com
今回はaspdotnet-mysql-sampleという名前で新しくプロジェクトを作った前提で説明します。
以下のコマンドでパッケージを追加します。
$ dotnet add package MySql.Data --version 8.0.18
ドキュメントはこれです。
dev.mysql.com
MySQLのサーバーを動かす
サクッとDockerでやるのが楽です。
以下のコマンドで起動します。
$ docker run --rm -d -e MYSQL_ROOT_PASSWORD=mysql -p 43306:3306 --name mysql mysql:5.7
あとはコンテナの中に入って新しいデータベースを作成します。
$ docker exec -it mysql bash # mysql -uroot -pmysql mysql> CREATE DATABASE IF NOT EXISTS aspdotnet; mysql> show databases;
MySQLに接続する
Pages/Index.cshtml.csに以下のように追記します。
using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.RazorPages; using Microsoft.Extensions.Logging; using MySql.Data.MySqlClient; namespace aspdotnet_mysql_sample.Pages { public class IndexModel : PageModel { private readonly String DBName = "aspdotnet"; private readonly String DBHost = "127.0.0.1"; private readonly String DBPort = "43306"; private readonly String DBUser = "root"; private readonly String DBPass = "mysql"; private readonly ILogger<IndexModel> _logger; public IndexModel(ILogger<IndexModel> logger) { _logger = logger; String ConnectionString = $"server={DBHost};port={DBPort};uid={DBUser};pwd={DBPass};database={DBName}"; MySqlConnection connection; try { connection = new MySqlConnection(); connection.ConnectionString = ConnectionString; connection.Open(); Console.WriteLine(connection.ServerVersion); } catch (MySqlException e) { Console.WriteLine(e.Message); } } public void OnGet() { } } }
動作確認
前回と同様にアプリケーションを実行し、ブラウザでアクセスします。
アプリケーションのコンソールにMySQLのバージョンが出力されれば接続成功です。
おわりに
次回からはデータのCRUDなどについて実装していきます。