この記事は ConoHaのカレンダー | Advent Calendar 2022 - Qiita の9日目の記事で、 MySQLのカレンダー | Advent Calendar 2022 - Qiita の9日目の記事でもあります。
去年は失敗したCentOS 9 Streamでのビルドを今年は成功させました。
去年には MySQL :: Supported Platforms: MySQL Database に載っていなかった気がするCentOS 9 Stream(Streamとは書いてないな…)も今は記述があって、8.0はサポートされている様子。
$ cat /etc/centos-release
CentOS Stream release 9
去年 のCentOS 8 Streamでリポジトリ名が小文字になってハマったpowertools, 9 Streamではどうやら crb
なるリポジトリに移った様子。
先人の記録に感謝しながらビルドに必要な一式をインストール。
$ sudo dnf install --enablerepo=crb cmake gcc gcc-c++ openssl-devel ncurses-devel libtirpc-devel rpcgen
MySQLのソースコードを落として展開。
$ wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-boost-8.0.31.tar.gz
$ tar xf mysql-boost-8.0.31.tar.gz
ビルド用のディレクトリを掘ってcmake。
$ mkdir build
$ cd build/
$ cmake -DWITH_BOOST=../mysql-8.0.31/boost ../mysql-8.0.31
OOM Killerにやられてもアレなので、swapファイルを足しておく。
$ sudo dd if=/dev/zero of=/swapfile bs=1M count=4096
$ sudo chmod 600 /swapfile
$ sudo mkswap /swapfile
$ sudo swapon /swapfile
で、make。ちょっとバイナリのサイズ小さくなってる?
$ time make
real 245m46.514s
user 195m49.156s
sys 20m46.145s
$ sudo make install
$ du -sh /usr/local/mysql
1.3G /usr/local/mysql
$ sudo useradd mysql
$ cd /usr/local/mysql
$ sudo bin/mysqld --initialize-insecure --user=mysql
2022-12-08T15:53:26.099038Z 0 [System] [MY-013169] [Server] /usr/local/mysql/bin/mysqld (mysqld 8.0.31) initializing of server in progress as process 84746
2022-12-08T15:53:26.116373Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2022-12-08T15:53:26.510757Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
2022-12-08T15:53:28.637373Z 6 [Warning] [MY-010453] [Server] root@localhost is created with an empty password ! Please consider switching off the --initialize-insecure option.
$ sudo bin/mysqld --user=mysql --daemonize
mysqld will log errors to /usr/local/mysql/data/160-251-102-248.err
mysqld is running as pid 84809
起動もOK。
$ bin/mysql -uroot --skip-binary-as-hex
mysql> SELECT CURDATE();
+------------+
| CURDATE() |
+------------+
| 2022-12-09 |
+------------+
1 row in set (0.00 sec)
mysql> SELECT 0x436F6E6F486120416476656E742043616C656E6465722032303232;
+----------------------------------------------------------+
| 0x436F6E6F486120416476656E742043616C656E6465722032303232 |
+----------------------------------------------------------+
| ConoHa Advent Calender 2022 |
+----------------------------------------------------------+
1 row in set (0.00 sec)
毎年、仕事で使っている以外の新しいCentOSに触れる唯一の機会になっているなあ。
良いお年を。
0 件のコメント :
コメントを投稿