MySQL8.0をインストール
Ubuntuリポジトリのパッケージをインストールする。
$ sudo apt update
$ sudo apt install mysql-server
インストール後、付属のセキュリティスクリプトを実行するのが習わしのようです。
$ sudo mysql_secure_installation
実行するとMySQLのrootパスワードとセキュリティオプションの設定を訪ねてきます。Yes/Noの質問はすべてYesにし、パスワード設定のバリデーション強度についてはSTRONGにする。
これで、匿名ユーザーとテストデータベースが削除され、リモートrootログインが無効になる。
MySQLユーザーの作成と権限の付与
ユーザーを作成する
インストール後はMySQLのrootユーザーのみ作られているので、作業ユーザーを作成する。まずは、rootユーザーでMySQLサーバーに接続する。
$ sudo mysql
MySQLに接続したら、下記コマンドでユーザーを作成。
mysql> CREATE USER 'ユーザー名'@'接続元' IDENTIFIED BY 'パスワード';
接続元はUbuntuサーバーからローカルで接続するので、'localhost'にする。
作成したユーザーに権限を付与する
ユーザーを作成したら権限を付与する。下記は設定例です。
GRANTの後は付与する権限、ONの後はレベル、TOの後はユーザー名、@の後は接続元、最後のWITH GRANT OPTIONは同じアクセス権やロールを他のユーザに付与する権利を持たせます。
mysql> GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT, REFERENCES, RELOAD ON *.* TO 'ユーザー名'@'localhost' WITH GRANT OPTION;
MySQL8.0は、GRANTでユーザー作成と権限を同時に設定できなくなっているなど、5.7との変更点などあるらしい。
ここまで終了したら、 一旦MySQL サーバーへの接続を切断します。
mysql> exit
データベースを作成
CMS用のデータベースを作成するため、新しく作成したユーザーでMySQLサーバーに接続。
下記コマンドの後、パスワードを入力すると接続できる。
$ mysql -u ユーザー名 -p
MySQL サーバーに接続できたら、データベースを作成する。
mysql> CREATE DATABASE データベース名;
データベース名は64文字以内まで。無事作成できているか、データベース一覧を確認してみる。
mysql> SHOW DATABASES;
作成したデータベース名が確認できた。
これでStrapiに使うデータベースの準備は完了したので、MySQL サーバーへの接続を切断して終了します。
おわりに
MySQLの情報をみていて大文字と小文字の違いが気になったが、 MySQL 8.0 リファレンスマニュアル MySQL NDB Cluster 8.0 を含むopen_in_newには、“SQL キーワードでは大文字と小文字は区別されず、大文字と小文字は区別されません。 このマニュアルでは大文字を使用します。” とあるので気にしないことにした。お作法はありそうなので、機会があればエンジニア様に聞いてみたいところ。
これで基本的な環境準備が完了した。
次はHTMLプロトタイプを作ります。