Windowsを再起動したとき,WSLでMariaDBを起動する方法
すこし手間取ったので備忘録的な感じで
環境
- Windows11(21H2)
- WSL2(0.70.0.0)
- Debian(11.5)
- MariaDB(15.1)
書いているときに気付いたけど,systemd使えるバージョンだった.
今回はsystemd使わずにやる.
症状
MySQLを起動しようとすると,
$ service mysql start
WSLに「そんなサービスねーぞ」と怒られる
mysql: unrecognized service
仕方なくサービス一覧を確認
$ service --status-all
...
[ - ] mariadb
...
MariaDBのサービスならあるらしい(なんか違和感あるけどまーいいか)
とりあえずmariadbで起動してみる
$ service mariadb start
また「/var/mysqldっていうディレクトリねーぞ.」と怒られた.
Starting MariaDB database server: mariadbdinstall: cannot change owner and permissions of ‘/run/mysqld’: No such file or directory
対処
root権限に移り,指定箇所にディレクトリを作る.ついでにグループも変える.
$ sudo -s
# mkdir /run/mysqld
# chown mysql:mysql /run/mysqld
起動してみる
# service mariadb start
Starting MariaDB database server: mariadbd.
無事起動したみたい
# mysql -u root -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 32
Server version: 10.5.15-MariaDB-0+deb11u1 Debian 11
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]>
[追記]余談
まあ,WSLのバージョンがv0.67.6以上だったらこんなことしなくてもいいんですけどね.
なぜなら,systemdを使うことができるから.
$ sudo vi /etc/wsl.conf
#以下を入力
[boot]
systemd=true
保存して再起動かけると自動的にmariadbが立ち上がります.
$ ps aux | grep mysql
mysql 186 1.0 1.3 2230420 109216 ? Ssl 13:32 0:00 /usr/sbin/mariadbd
woodnext 562 0.0 0.0 6240 708 pts/1 S+ 13:32 0:00 grep mysql
まあこっちのほうが楽だよね...