概要
ASP.NET CoreアプリをAWS LightsailのCentOS 7環境で公開するにあたりDBにMySQLを使用しているためMySQL環境を構築した手順メモです。
今回インストールするのはMySQL5.7です。
構成は下記の様な形です。
ASP.NET Coreアプリ + Nginxの構成部分はすでに構築済みです。
目次
環境
$ cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)
参考サイト様
- https://qiita.com/prgseek/items/7c77d4b14d0afbf84f5c 🔗
- https://weblabo.oscasierra.net/mysql-57-init-setup/ 🔗
MySQLインストール
下準備:mariadb
のアンインストール
CentOS 7.x系ではデフォルトでmariaDB
がインストールされている様なのでアンインストールします。
$ rpm -qa | grep maria
mariadb-libs-5.5.60-1.el7_5.x86_64
$ sudo yum remove -y mariadb-libs
MySQLのインストール
yumリポジトリをMySQL 5.7用に変更し、インストールします。
$ sudo yum localinstall -y http://dev.mysql.com/get/mysql57-community-release-el7-7.noarch.rpm
インストール:
mysql57-community-release.noarch 0:el7-7
完了しました!
$ sudo yum install -y mysql mysql-devel mysql-server mysql-utilities
インストール:
mysql-community-client.x86_64 0:5.7.25-1.el7 mysql-community-devel.x86_64 0:5.7.25-1.el7
mysql-community-server.x86_64 0:5.7.25-1.el7 mysql-utilities.noarch 0:1.6.5-1.el7
依存性関連をインストールしました:
省略
完了しました!
MySQLセットアップ
MySQLの初期化
$ sudo mysqld --user=mysql --initialize
サービス登録&起動
$ sudo systemctl enable mysqld.service
$ sudo systemctl start mysqld.service
$ sudo systemctl status mysqld.service
mysql_secure_installationコマンドの実行
MySQLのパスワード変更等の設定をやってくれる便利なやつです。
詳細はこちらの記事 🔗がわかりやすく参考になりました。
# インストール時に設定される初期パスワードの確認
$ grep password /var/log/mysqld.log
2019-03-06T10:43:23.779473Z 1 [Note] A temporary password is generated for root@localhost: XXXXXXXXXXXX
# 設定開始
$ mysql_secure_installation
my.cnfの設定
今回は個人で作成したToDoアプリの構築メモなので顔文字用に文字コード設定を変更しています。 そのうちパフォーマンス設定もやってみたいなとか思ってます…
$ sudo vi /etc/my.cnf
/etc/my.cnf
[mysql]
default-character-set=utf8mb4
[mysqld]
character-set-server=utf8mb4
設定を反映するためMySQLを再起動
$ sudo systemctl restart mysqld.service
ユーザとDBスキーマの作成
アプリ専用ユーザとスキーマを作成します。
$ mysql -uroot -p
mysql> CREATE DATABASE hogehoge;
mysql> CREATE USER 'hoge'@'localhost' IDENTIFIED BY 'fuga';
mysql> GRANT ALL PRIVILEGES ON hogehoge.* TO 'hoge'@'localhost';
mysql> FLUSH PRIVILEGES;
以上で構築作業は完了になります。
このあとEntityFramework Coreから発行されたscriptなどを適用したりしています。
雑感
色んな所に公開されてる手順記事の劣化版と言う感じになってしまっているけど
ローカルメモやiTermのログは埋もれていくので整理してブログに書いとくのがあとで見直すのに一番ですね。