end0tknr's kipple - web写経開発

太宰府天満宮の狛犬って、妙にカワイイ

install mysql5.7 to rhel8

更?に、上記2 entryの続きです。

内容は、上記entryに似ていますが、osが前回のcent に対し、今回のrhelですので、 微妙に異なる点がありました。

Step 1 - 依存パッケージのインストール

以下を yum インストール。

$ sudo yum install gcc
$ sudo yum install git
$ sudo yum install openssl-devel
$ sudo yum install ncurses-devel
$ sudo yum install libtirpc-devel

Step 2 - 依存パッケージのインストール (その2)

cmakeは、新しいverが欲しかった為、srcより、インストール。

$ wget https://github.com/Kitware/CMake/releases/download/v3.21.0/cmake-3.21.0.tar.gz
$ tar -xvf cmake-3.21.0.tar.gz
$ cd cmake-3.21.0
$ ./configure
$ make
$ make test
$ sudo make install

centosにおいて rpcgen ( rpcsvc-proto )は、devtoolset に含まれるようですが、 rhelにおける devtoolset のインストールが不明でしたので、srcよりインストール。

$ sudo yum install automake
$ sudo yum install gettext*

$ wget https://github.com/thkukuk/rpcsvc-proto/archive/refs/tags/v1.4.2.tar.gz
$ tar -xvf v1.4.2.tar.gz
$ cd rpcsvc-proto-1.4.2
$ ./autogen.sh
$ ./configure
$ make
$ make test
$ sudo make install

Step 3 - mysql5.7のインストール

$ tar -xvf mysql-boost-5.7.34.tar.gz
$ cd /home/end0tknr/tmp/mysql-5.7.34
$ /usr/local/bin/cmake . \
   -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
   -DDEFAULT_CHARSET=utf8 \
   -DDEFAULT_COLLATION=utf8_general_ci \
   -DENABLED_LOCAL_INFILE=true \
   -DWITH_INNOBASE_STORAGE_ENGINE=1 \
   -DWITH_EXTRA_CHARSETS=all \
   -DWITH_READLINE=ON \
   -DDOWNLOAD_BOOST=ON \
   -DWITH_BOOST=/home/end0tknr/tmp/mysql-5.7.34/boost \
   -DFORCE_INSOURCE_BUILD=1 \
   -DWITH_SYSTEMD=ON

$ make
$ make test
$ sudo make install

Step 4 - my.cnf の作成

mysql5.7 をsrcからinstall - end0tknr's kipple - web写経開発

上記エントリと同様ですので、省略します。

Step 5 - user & group 追加

$ sudo groupadd mysql
$ sudo useradd -r -g mysql mysql

Step 6 - ディレクトリ作成

以前、行った際のosと異なることの影響でしょうか、 いくつか mkdir しました。

# su - mysql
$ mkdir /home/mysql/data
# mkdir /var/run/mysqld
# chown mysql:mysql /var/run/mysqld

Step 7 - データベースの初期化

$ sudo su - mysql
$ /usr/local/mysql/bin/mysqld --initialize

Step 8 - 自動起動の設定と、データベースの起動

# cd /etc/systemd/system
# cp /home/end0tknr/tmp/mysql-5.7.34/scripts/mysqld.service .

# systemctl enable mysqld
# systemctl start  mysqld

Step 9 - 接続テスト

mysql8と異なり、pwなしで、すぐに接続できます。

$ /usr/local/mysql/bin/mysql

mysql> create database test;
Query OK, 1 row affected (0.00 sec)

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
| test               |
+--------------------+
5 rows in set (0.01 sec)