AIQUM を 9.16P2D23 にアップグレードすると、MySQL ERROR 4058 認証ポリシーの不一致が発生して失敗します
環境
- Active IQ Unified Manager 9.16P2(AIQUM)
- D-Patch 9.16P2D23
- すべてのOSプラットフォーム(OVA、RHEL、Windows)
- MySQL 8.4.x
問題
- MySQLユーザ認証の移行中にAIQUM 9.16P2D23へのアップグレードが失敗する
- アップグレードスクリプトが
jbossMySQLユーザをmysql_native_passwordからcaching_sha2_passwordに変更しようとして失敗する - アップグレードログ(
/var/log/ocum/upgrade-XXXXXXXX.log)の内容:
ERROR 4058 (HY000) at line 1: Authentication method 'caching_sha2_password'{2} does not match authentication policy '{3}'. It must match at least one of the policies listed in '@@authentication_policy'.- エラーは、実行時の
platformbaseUpgrade()関数で発生します:
ALTER USER 'jboss'@'localhost' IDENTIFIED WITH caching_sha2_password BY '<password>';原因
- D23アップグレードスクリプトは、MySQL設定で
authentication_policy='caching_sha2_password,,'を設定し、ALTER USERを実行してユーザをmysql_native_passwordからcaching_sha2_passwordに切り替えます - MySQL 8.4は認証ポリシーを厳密に適用します—任意の
ALTER USER ... IDENTIFIED WITHステートメントはauthentication_policyシステム変数に準拠する必要があります AUTHENTICATION_POLICY_ADMIN権限により、この適用をバイパスできます- 影響を受けるシステムでは、MySQLの
rootユーザにAUTHENTICATION_POLICY_ADMIN権限がないため、ALTER USERがERROR 4058で失敗します - この権限は通常デフォルトで存在しますが、MySQLインスタンスが移行された場合、バックアップから復元された場合、または以前のトラブルシューティング中に権限が変更された場合は存在しない可能性があります
解決策
- アップグレード前のVMスナップショットに戻す
- NetApp Technical Supportに連絡するか、NetApp Support Siteにログインしてテクニカルケースを作成してください。詳細については、この記事を参照してください。
- サポートエンジニアがMySQLの権限設定を確認して修正してから、アップグレードを再試行します。
パートナーノート
- この問題は、D23パッチアップグレードパス(9.16P2→9.16P2D23)にのみ影響し、新規インストールには影響しません
- 権限チェックは、アップグレードを試みる前に事前検証として実行する必要があります
内部情報
|
警告
|
解決策手順(レベル2のみ)
- アップグレード前のVMスナップショットに戻す
- rootとしてMySQLシェルにアクセスします:
- OVA:Active IQ Unified Manager仮想マシン(OVA)DIAGシェルへのアクセス方法に従ってDIAGシェルアクセスを有効にし、
sudo -sでroot権限を取得してから、mysqlを実行します(パスワード不要認証) - RHEL:rootとしてSSH接続し、
mysqlを実行します(ソケット認証によるパスワード不要認証) - Windows:管理者権限でコマンドプロンプトを開き、
mysql -u root -pを実行します(MySQLのrootパスワードが必要)
- OVA:Active IQ Unified Manager仮想マシン(OVA)DIAGシェルへのアクセス方法に従ってDIAGシェルアクセスを有効にし、
- 不足している権限を確認します:
SHOW GRANTS FOR 'root'@'localhost';AUTHENTICATION_POLICY_ADMINが出力にリストされていないことを確認します - 不足している権限を付与します:
GRANT AUTHENTICATION_POLICY_ADMIN ON *.* TO 'root'@'localhost';FLUSH PRIVILEGES; - 権限付与が適用されたことを確認します:
SHOW GRANTS FOR 'root'@'localhost';AUTHENTICATION_POLICY_ADMINが表示されることを確認します - MySQLを終了し、D23アップグレードを再試行します
追加のコンテキスト
- ケース:2010685358(Alarm.com)
- アップグレードスクリプト
/cdrom/update-oc.sh関数platformbaseUpgrade()は以下のシーケンスを実行します:authentication_policy='caching_sha2_password,,'を/etc/mysql/mysql.conf.d/mysqld.cnfに書き込みます- ポリシーを適用するためにMySQLを再起動します
ALTER USER 'jboss'@'localhost' IDENTIFIED WITH caching_sha2_password BY '...'を実行します
- ステップ3は、ポリシーが適用されているにもかかわらず、rootにそれを回避するための管理者権限がないため失敗します
- 権限が欠落している根本原因は不明です。以前のトラブルシューティングで権限が変更されたか、動的権限が保持されなかったMySQLのアップグレード/復元パスが原因である可能性があります
- 他のお客様からはこのような特定の障害は報告されていません。これは非標準のMySQL状態によるエッジケースである可能性が高いです
- アップグレード前の事前チェック:
SELECT * FROM mysql.global_grants WHERE USER='root' AND HOST='localhost' AND PRIV='AUTHENTICATION_POLICY_ADMIN';
1行を返す必要があります。空の場合は、権限が欠落しているため、アップグレード前に適用する必要があります。