CentOSへのMySQL 5.7環境構築ガイド

リポジトリの準備と既存パッケージの削除

システムのパッケージ管理を最新化し、既存のデータベース関連パッケージとの競合を防ぐため、事前に確認と削除を行います。

# 既存のMySQL/MariaDB確認
rpm -qa | grep -E 'mysql|maria'
# 競合パッケージの削除
sudo yum remove -y mariadb-libs

次に、YumリポジトリをAliyunミラーに変更し、ローカルキャッシュを更新します。

sudo curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
sudo yum clean all && sudo yum makecache

MySQL 5.7のインストール

MySQLの公式リポジトリを追加し、デフォルトで有効になっている新しいバージョンを無効化して5.7系を有効にした後、インストールを実行します。

# 公式リポジトリの追加
sudo yum localinstall -y https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
# 8.0を無効化し5.7を有効化
sudo yum-config-manager --disable mysql80-community
sudo yum-config-manager --enable mysql57-community
# インストール実行
sudo yum install -y mysql-community-server

サービスの起動と初期設定

インストール完了後、サービスを起動し自動起動を有効にします。初回起動時には証明書の有効期限切れエラーを防ぐため、システム全体のアップデートを実施しておくことを推奨します。

sudo yum update -y
sudo systemctl start mysqld
sudo systemctl enable mysqld

ルートパスワードの変更とリモート接続設定

ログファイルから初期パスワードを取得し、ログイン後にセキュリティ設定を調整します。

# 初期パスワードの抽出
TEMP_PASS=$(sudo grep 'temporary password' /var/log/mysqld.log | tail -n 1 | awk '{print $NF}')
mysql -u root -p"$TEMP_PASS"

MySQLにログインしたら、パスワードポリシーを緩和し、新しいパスワードを設定します。

SET GLOBAL validate_password_policy=LOW;
SET GLOBAL validate_password_length=6;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'P@ss1234';

外部ホストからのアクセスを許可するユーザーを作成します(セキュリティの観点からrootではなく専用ユーザーを作成します)。

CREATE USER 'remote_admin'@'%' IDENTIFIED BY 'P@ss1234';
GRANT ALL PRIVILEGES ON *.* TO 'remote_admin'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;

文字コードの設定

デフォルトの文字コードをUTF-8に変更するため、設定ファイルを編集します。

# /etc/my.cnf の編集
[mysqld]
character-set-server=utf8mb4

[client]
default-character-set=utf8mb4

設定を反映させるため、MySQLサービスを再起動します。

sudo systemctl restart mysqld

タグ: MySQL5.7 CentOS Yum RPM

5月18日 12:04 投稿