特定 version の MySQL サーバーを Docker で構築する手順をご紹介します。
docker run \\
--name mysql5.7 \\
-e MYSQL_ALLOW_EMPTY_PASSWORD=yes \\
-p 3306:3306 \\
-d mysql:5.7
docker exec -it mysql5.7 bash
重要なポイントは @“localhost” だけでなく @”%” のクエリも実行することです。
CREATE DATABASE mydb CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
CREATE USER 'myuser'@"localhost" IDENTIFIED BY "mypassword";
CREATE USER 'myuser'@"%" IDENTIFIED BY "mypassword";
GRANT all ON mydb.* TO 'myuser'@"localhost";
GRANT all ON mydb.* TO 'myuser'@"%"; # Docker for Mac の場合 @"%"; も忘れず
FLUSH PRIVILEGES;
詳しくは、MySQL ユーザのホストをワイルドカードで指定してもlocalhostは含まれない | b.l0g.jp を参照ください。
以上、たまに古い version の MySQL を利用したくなる、現場からお送りしました。