MySQL 5.7 から MySQL 8 へのアップグレード

前提条件

MySQL 5.7 から MySQL 8 へマイグレートするには、少なくとも Pandora FMS バージョン NG 760 MR 52 へアップグレードする必要があります。

  • root ユーザにてターミナルウインドウを開き、次のコマンドを実行します。
mysql --version

次のような出力が得られます。

mysql  Ver 14.14 Distrib 5.7.33, for Linux (x86_64) using  EditLine wrapper

CentOS 7

  • Pandora FMS サーバと Pandora FMS ソフトウエアエージェントを停止します。
/etc/init.d/pandora_server stop
/etc/init.d/pandora_agent_daemon stop
  • Apache Web サーバを停止します。
systemctl stop httpd.service

または、

/etc/init.d/httpd stop
  • Make a special database backup that is compatible with MySQL 8:
  • MySQL 8 に互換性がある特別なデータベースバックアップを作成します。
mysqldump -u root -p pandora \
  --skip-add-drop-table \
  --complete-insert \
  --no-create-info > backup_pandora.sql
  • MySQL 5.7 での通常のバックアップを作成します。(このバージョンに戻す場合の追加の保険です)
mysqldump -u root -p pandora > backup_pandora_5.7.sql
  • MySQL 設定ファイル(my.cnf)をバックアップします。
cp /etc/my.cnf /tmp/my.cnf.BACK
  • Percona 5 リポジトリを削除します。
rpm -qa | grep Percona-Server | xargs rpm -e --nodeps
  • Percona 8 リポジトリをインストールします。
yum install https://repo.percona.com/yum/percona-release-latest.noarch.rpm -y
  • 前述のリポジトリを有効化します。
percona-release setup ps80
  • Percona 8 をインストールします。
yum install percona-server-server
  • my.cnf ファイルをリストアします。
mv /tmp/my.cnf.BACK /etc/my.cnf
  • query_cache_* を無効化するように my.cnf ファイルを修正します。
sed -i -e "s/^query_cache_type.*/#query_cache_type/g" /etc/my.cnf
sed -i -e "s/^query_cache_size.*/#query_cache_size/g" /etc/my.cnf
sed -i -e "s/^query_cache_min_res_unit.*/#query_cache_min_res_unit/g" /etc/my.cnf
sed -i -e "s/^query_cache_limit.*/#query_cache_limit/g" /etc/my.cnf
  • HA 環境が無い場合は、mysqld セクションの次のコマンドでバイナリログを無効化します。
skip-log-bin

my.cnf ファイルのチェックには、“最適化と問題解決” も参照してください。

  • MySQL サービスを起動します。
systemctl start mysql

または、

service mysqld start
  • インストールされたバージョンを確認します。
mysql --version

次のような出力を確認できます。

mysql  Ver 8.0.28-19 for Linux on x86_64 (Percona Server (GPL), Release 19, Revision 31e88966cd3)
  • MySQL のコマンドラインで、
    • pandora データベースを削除します。
    • 新たな pandora データベースを作成します。
    • pandora データベースを開き、Pandora FMS Web コンソールにあるスキーマをインポートします。
    • データをインポートします。
    • 特別な MySQL 8 互換バックアップをインポートします。
mysql -u root -p pandora
drop database pandora;
create database pandora;
use pandora;
source /var/www/html/pandora_console/pandoradb.sql;
source backup_pandora.sql;
  • 必要なアクセス許可を再度追加する必要があります。 mysqlログインしていない場合 は、 root ユーザ(パスワードは対応するものを利用)として以下を実行します:
mysql -u root -p <password>
  • root としてログインしてら次のコマンドを実行します。
  • パスワード検証プラグインを無効にします(オプション)。
UNINSTALL COMPONENT 'file://component_validate_password';
  • ログインユーザが存在しない場合は作成します。
CREATE USER "<DBUSER>"@'%' IDENTIFIED BY "<DBPASS>";

注意 : データベースへの接続 IP アドレスを制限したい場合は、% を接続元の IP アドレスに変更する必要があります。

  • mysql にネイティブパスワードを設定します。
ALTER USER "<DBUSER>"@'%' IDENTIFIED WITH mysql_native_password BY "<DBPASS>";
  • Pandora FMS データベース(pandora)に対して grant を行います。
GRANT ALL PRIVILEGES ON pandora.* TO "<DBUSER>"@'%';
  • 変更を保存して抜けます。
flush privileges;
exit

データベースの対応が完了したら、次のステップを実行します。

  • Pandora FMS サーバおよび Pandora FMS ソフトウエアエージェントを起動します。
/etc/init.d/pandora_server start
/etc/init.d/pandora_agent_daemon start
  • Apache Web サーバを起動します。
systemctl start httpd.service

または、

/etc/init.d/httpd start

Rocky Linux 8/AlmaLinux 8/RHEL 8

  • Pandora FMS サーバおよび Pandora FMS ソフトウエアエージェントを停止します。
/etc/init.d/pandora_server stop
/etc/init.d/pandora_agent_daemon stop
  • Apache web サーバを停止します。
systemctl stop httpd.service

または、

/etc/init.d/httpd stop
  • MySQL 8 に互換性のある特別なデータベースバックアップを作成します。
mysqldump -u root -p pandora \
  --skip-add-drop-table \
  --complete-insert \
  --no-create-info> backup_pandora.sql
  • MySQL 5.7 での通常のバックアップを作成します。(このバージョンに戻す場合の追加の保険です。)
mysqldump -u root -p pandora > backup_pandora_5.7.sql
  • MySQL 設定ファイル(my.cnf)をバックアップします。
cp /etc/my.cnf /tmp/my.cnf.BACK
  • Percona 5 リポジトリを削除します。
rpm -qa | grep Percona-Server | xargs rpm -e --nodeps
  • Percona 8 リポジトリをインストールします。
dnf install https://repo.percona.com/yum/percona-release-latest.noarch.rpm -y
  • 前述のリポジトリを有効化します。
percona-release setup ps80
  • Percona 8 をインストールします。
dnf install percona-server-server
  • my.cnf ファイルをリストアします。
mv /tmp/my.cnf.BACK /etc/my.cnf
  • query_cache_* を無効化するために my.cnf を修正します。
sed -i -e "s/^query_cache_type.*/#query_cache_type/g" /etc/my.cnf
sed -i -e "s/^query_cache_size.*/#query_cache_size/g" /etc/my.cnf
sed -i -e "s/^query_cache_min_res_unit.*/#query_cache_min_res_unit/g" /etc/my.cnf
sed -i -e "s/^query_cache_limit.*/#query_cache_limit/g" /etc/my.cnf
  • HA 環境が無い場合は、[mysqld] セクションの次のコマンドでバイナリログを無効化します。
skip-log-bin

my.cnf ファイルのチェックには、“最適化と問題解決” も参照してください。

  • MySQL サービスを起動します。
systemctl start mysql

または、

service mysqld start
  • インストールされたバージョンを確認します。
mysql --version

次のような出力が見られます。

mysql  Ver 8.0.28-19 for Linux on x86_64 (Percona Server (GPL), Release 19, Revision 31e88966cd3)
  • MySQL のコマンドラインで、
    • pandora データベースを削除します。
    • 新たな pandora データベースを作成します。
    • pandora データベースを開き、Pandora FMS Web コンソールにあるスキーマをインポートします。
    • データをインポートします。
    • 特別な MySQL 8 互換バックアップをインポートします。
mysql -u root -p pandora
drop database pandora;
create database pandora;
use pandora;
source /var/www/html/pandora_console/pandoradb.sql;
source backup_pandora.sql;
  • Pandora FMS サーバおよび Pandora FMS ソフトウエアエージェントを起動します。
/etc/init.d/pandora_server start
/etc/init.d/pandora_agent_daemon start
  • Apache web サーバを起動します。
systemctl start httpd.service

または、

/etc/init.d/httpd start

Pandora FMS ドキュメント一覧に戻る