はじめに
インストールの手順と、その際起こったエラーについて記述していきます。
簡単にできるだろうと高をくくっていたのですが、結構つまづきました。
環境
WSL Ubuntu 20.04.4
ダウンロードするMySQLのバージョン
mysql Ver 8.0.29-0ubuntu0.20.04.3 for Linux on x86_64 ((Ubuntu))
手順1 MySQLをインストールする
sudo apt update
インストールする前に、アップデートをします
sudo apt install mysql-server
次に、mysqlをインストールします。
手順2 MySQLの設定をする
sudo mysql_secure_installation
これにより、一連のプロンプトが開かれて、設定が出来るみたいなのですが、
rootのパスワードを入力して下さいと表示がされ、入力してエンターを
押したらこんなエラーメッセージが出力されました
Error: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
Securing the MySQL server deployment.
Enter password for user root:
Error: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
ソケット経由でローカル接続が出来ないとのことです。はて、ソケットって何だ・・?
調べたら、こんな意味でした。
そういえば学習初期に見た覚えがあります笑 忘れちゃうものですね・・
https://e-words.jp/w/%E3%82%BD%E3%82%B1%E3%83%83%E3%83%88.html
より、
ソケット 【socket】
ソケットとは、受け口、軸受け、接合部、穴、へこみなどの意味を持つ英単語。ITの分野では物理的な接続端子を指す場合と、ソフトウェア間で通信する仕組みを指す場合がある。
ソケットの意味は分かった!けど、どう影響してるの・・?とりあえずエラーメッセージをコピペして検索をかけたら、原因が分かりました。
サービスの起動確認
$sudo service mysql status
* MySQL is stopped.
そもそも起動してなくて、止まっているらしい。
じゃあ起動させればいいのね!
System has not been booted with systemd as init system (PID 1). Can't operate.Failed to connect to bus: Host is down
$systemctl start mysql
System has not been booted with systemd as init system (PID 1). Can't operate.
Failed to connect to bus: Host is down
はい!またエラーメッセージが出てきました。
エラー文を見るに、PIDが何やら影響しているそう・・?
調べたら、systemctlコマンドの、systemedがPID1、つまり一番目のプロセスに設定していないがために起こるエラーメッセージだそうです。
https://snowsystem.net/other/windows/wsl2-ubuntu-systemctl/?msclkid=b557105acffd11ecb5db051697f5105a
PID1に設定する方法が載っていますので、こちらを参考にしてください。
MySQL起動ととグイン
$systemctl start mysql
$sudo mysql -u root
これでやっとログインできました・・・。
細かい設定方法は下記URLが参考になりましたので、こちらを参照してください。
https://qiita.com/houtarou/items/a44ce783d09201fc28f5
おわりに
WSLからMySQLをインストールしようとしたがために、手こずってしまったのでしょうか・・。
このエラーを解決するために二時間も要してしまったので、同じようなエラーに直面している方の手助けになれたら幸いです。