Ubuntu20.04: MySQL8.0 のインストールとメモリ使用量削減

 
Azure VM の Standard B1ls インスタンスで Ubuntu に MySQL を入れようとしたらメモリ不足でインストール出来なかったのでメモ。
最終的には B1ls の RAM 500MB で動かせるようになったけど。

 

とにかく MySQL 8.0 をインストールしたい

まず、 MySQL8.0 は RAM 500MB だとメモリ不足でインストール出来ないw

apt でインストールしようとするとこういうエラーが出る↓

Problems installing MySQL on Ubuntu 20.04 – Stack Overflow

で、応急処置は RAM を 1GB 以上確保してからインストールすれば OK.
マシンサイズを Standard B1s (RAM 1GB) に変更したらインストール出来た。

 

mysql_secure_installation でエラーが出る

続いて mysql_secure_installation を実行したら、今度はパスワードを変更できない。

sudo mysql_secure_installation をするとこういうエラーが出る↓

MySQL installation on Ubuntu 20.04 error when using mysql_secure_installation – Stack Overflow

対策は上記リンク先に書いてあるとおり MySQL に root アカウントでログインして、 ALTER コマンドでパスワードをセットしてから再び mysql_secure_installation を実行すれば OK.

 

MySQL 8.0 のメモリ使用量を減らす

最後にメモリ使用量を減らす。
デフォルトだとOS全体で 600MB 以上メモリを使っているので、このままだと B1ls マシンではメモリ不足で動かない。

/etc/mysql/mysql.conf.d/mysqld.cnf を編集してメモリ使用量を減らす。

# mysqld.cnf
key_buffer_size = 8M #16M から変更

#そして下記を追加
thread_stack = 256K
performance_schema = 0

※2022-10-26訂正 thread_stack = 128K だとThread Stack Overrun error が出てコケるので 256K に変更

これで MySQL を再起動すると、RAM使用量が一気に減った。
free で見たらこうだった。

$ free -m
              total        used        free      shared  buff/cache   available
Mem:            402         295           4          23         102          63
Swap:          2047         326        1721

300MB 弱まで減らせた。
ここまで来たら、あとはマシンサイズを再び B1ls の RAM 500MB マシンに変更すれば OK.