Kylin Linux Advanced Server V10(SP3以降)において、公式のEPKLリポジトリを利用して MySQL 5.7 をインストールし、最適化設定を行う手順について解説します。
1. EPKL 鏡像リポジトリの構成
まず、MySQL 5.7 のパッケージが含まれる拡張リポジトリ(EPKL)をシステムに登録します。リポジトリ設定ファイルを作成し、以下の内容を記述します。
# vi /etc/yum.repos.d/kylin_mysql_epkl.repo
[kylin-adv-epkl]
name=Kylin Linux Advanced Server 10 - EPKL
baseurl=https://update.cs2c.com.cn/NS/V10/V10SP3/EPKL/$basearch/
enabled=1
gpgcheck=0
2. 特定バージョンの MySQL インストール
リポジトリが有効になったら、利用可能なバージョンを確認し、MySQL 5.7 を指定してインストールを実行します。標準では MySQL 8.0 が選択される可能性があるため、フルパッケージ名を指定します。
# 利用可能なパッケージバージョンの確認
dnf list mysql-server --showduplicates --enablerepo=kylin-adv-epkl | sort -r
# MySQL 5.7.29 のインストール実行
dnf install -y mysql-community-server-5.7.29-1.p01.ky10.ky10 --enablerepo=kylin-adv-epkl
3. MySQL 構成ファイルの最適化設定
サーバーのパフォーマンスと文字コードの設定を調整するため、/etc/my.cnf を編集します。以下は、接続数やバッファサイズを調整した構成例です。
# vi /etc/my.cnf
[mysqld]
# 基本設定
port = 3306
datadir = /var/lib/mysql
socket = /var/lib/mysql/mysql.sock
pid-file = /var/lib/mysql/mysql.pid
user = mysql
bind-address = 0.0.0.0
server-id = 101
# 文字コード設定 (UTF-8mb4)
character-set-server = utf8mb4
collation-server = utf8mb4_general_ci
init-connect = 'SET NAMES utf8mb4'
# 接続・キャッシュ設定
max_connections = 5000
table_open_cache = 2048
max_allowed_packet = 512M
thread_cache_size = 64
query_cache_type = 1
query_cache_size = 64M
# InnoDB 最適化
default_storage_engine = InnoDB
innodb_buffer_pool_size = 1024M
innodb_log_file_size = 256M
innodb_flush_log_at_trx_commit = 2
innodb_file_per_table = 1
innodb_lock_wait_timeout = 100
# ログ設定
log_error = /var/lib/mysql/mysql-error.log
slow_query_log = 1
slow_query_log_file = /var/lib/mysql/mysql-slow.log
long_query_time = 2
log_bin = mysql-bin
binlog_format = row
expire_logs_days = 10
# 互換性・その他
lower_case_table_names = 1
skip-name-resolve
[mysql]
default-character-set = utf8mb4
prompt = "MySQL [\d]> "
[client]
port = 3306
socket = /var/lib/mysql/mysql.sock
4. サービスの起動と初期化
実行環境を整えた後、PIDファイルのパスを整合させ、MySQL サービスを起動します。
# 実行ディレクトリの権限設定とシンボリックリンク
mkdir -p /run/mysqld
chown -R mysql:mysql /run/mysqld
ln -sf /var/lib/mysql/mysql.pid /run/mysqld/mysqld.pid
# サービスの起動
/etc/init.d/mysqld start
5. 管理者パスワードの設定
初回起動時に生成される一時パスワードを確認し、セキュリティ設定を更新します。
# 一時パスワードの抽出
grep 'temporary password' /var/lib/mysql/mysql-error.log
# MySQLへのログインとパスワード変更
# mysql -u root -p
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'YourStrongPassword123!';
mysql> SET GLOBAL validate_password_policy = LOW;
mysql> FLUSH PRIVILEGES;