WSL の CentOS7 で MySQL をインストールする

ALL
スポンサーリンク

WSL で CentOS7 をインストールします。
下記記事の手順でインストールしてください。

WSL で CentOS を使う: パソコン鳥のブログ

MySQLをインストールします。

CentOS 7 はデフォルトではyumのリポジトリにMySQLがないので、リポジトリを追加します
https://dev.mysql.com/downloads/repo/yum/ の Red Hat Enterprise Linux 7 / Oracle Linux 7 の箇所から、rpmファイルをダウンロードします。
2020.8.22時点では、mysql80-community-release-el7-3.noarch.rpm です。

次のコマンドを実行して、MySQLのリポジトリを追加した後、MySQLをインストールします。

yum localinstall http://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
yum install mysql mysql-server

MySQLでアクセスするディレクトリを用意します。

mkdir -p /var/run/mysqld
chown mysql:mysql /var/run/mysqld

この後の手順で systemctl を使用しますが、 WSL 上では実行できません。
そこで、systemctl と同等の機能を持ったスクリプトを入手して、systemctlとして実行できるようにします。

mv /usr/bin/systemctl /usr/bin/systemctl.old
curl https://raw.githubusercontent.com/gdraheim/docker-systemctl-replacement/master/files/docker/systemctl.py > /usr/bin/systemctl
chmod +x /usr/bin/systemctl

MySQL の rootパスワード変更します。

–skip-grant-tablesオプションで mysqld を起動後、パスワード変更します。

MYSQLD_OPTS="--skip-grant-tables" systemctl start mysqld
mysql -u root

MySQL上で次を実行し、root のパスワード変更します。
XXXXXX にパスワードを記述してください。

ALTER USER 'root'@'localhost' IDENTIFIED BY 'XXXXXX';

MySQLを再起動します。

systemctl restart mysqld

これで、WSL の CentOS7 で MySQL を実行できます。
なお、mysqld は Windows起動時に自動起動しないので、都度、systemctl start mysqld を実行してください。

参考

CentOS 7にMySQLをインストールして初期設定するまで – Qiita
WSL(CentOS7)でsystemctlを実行するとFailed to get D-Bus connection: Operation not permittedになる – Qiita
CentOS7でMySQLにログインできない | ハックノート
MySQL8.0のrootパスワード変更 – Qiita

コメント