On this page
インストーラーエラー:LiveAgent 5.9.5からのアップデート時にSQLの実行に失敗しました
LiveAgent 5.9.5からのアップデート時に発生する「Failed to execute SQL」エラーの修正方法
LiveAgentのアップデート時に「Failed to execute SQL」エラーが発生し、インストーラーがバージョン5.9.5で停止している場合、データベースのテーブルのストレージエンジンや照合順序(collation)が正しく設定されていない可能性があります。LiveAgentは、すべてのデータベーステーブルがInnoDB ストレージエンジン(MyISAMを使用するqu_la_conversations_searchを除く)を使用し、データベースおよびすべてのテーブルとカラムが照合順序utf8_general_ci(アプリケーションによってutf8mb4_general_ci、utf8mb4_bin、ascii_binに変更される一部の特定カラムを除く)を使用することを必要とします。

データベース、テーブル、カラムを正しい形式に変換する手順:
-
データベースをバックアップする
-
LiveAgentのデータベースの照合順序を確認する。照合順序が
utf8_general_ciでない場合は、以下のコマンドを実行する(<db_name>をデータベース名に置き換えてください)
ALTER DATABASE <db_name> CHARACTER SET utf8 COLLATE utf8_general_ci;
- 以下のステートメントを実行して、utf8に変換が必要なテーブルを確認する。出力が空でない場合は、結果として生成されたすべてのALTER TABLEステートメントをコピーしてデータベースで実行する。
SELECT CONCAT("ALTER TABLE ", TABLE_SCHEMA, '.', TABLE_NAME," CHARACTER SET utf8 COLLATE utf8_general_ci;")
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA='<db_name>'
AND TABLE_TYPE="BASE TABLE"
AND TABLE_COLLATION NOT IN ('utf8_general_ci', 'utf8mb3_general_ci', 'utf8mb4_general_ci')
- 以下を実行して、utf8に変換が必要なカラムを確認する。出力が空でない場合は、結果として生成されたすべてのALTER TABLEステートメントをコピーしてデータベースで実行する。
SELECT CONCAT("ALTER TABLE ", TABLE_SCHEMA, '.', TABLE_NAME, " CHANGE ", COLUMN_NAME , " ", COLUMN_NAME, " ", DATA_TYPE, CASE WHEN DATA_TYPE IN ('text','longtext','tinytext','mediumtext') THEN "" ELSE CONCAT ("(", CHARACTER_MAXIMUM_LENGTH, ")") END, " CHARACTER SET utf8 COLLATE utf8_general_ci;" )
FROM information_schema.columns
WHERE table_schema = '<db_name>'
AND COLLATION_NAME NOT IN ('utf8_general_ci', 'utf8_unicode_ci', 'utf8mb3_general_ci', 'utf8mb3_unicode_ci', 'utf8mb4_general_ci', 'utf8mb4_unicode_ci', 'utf8_bin', 'utf8mb3_bin', 'utf8mb4_bin', 'ascii_bin')
ORDER BY table_name,ordinal_position
- 以下を実行して、ストレージエンジンInnoDBへの変換が必要なMyISAMテーブルを確認する。出力が空でない場合は、結果として生成されたすべてのALTER TABLEステートメントをコピーしてデータベースで実行する。注意:大きなテーブルを変換する場合は時間がかかります。MySQLがテーブル全体のコピーを作成するため、業務時間外に実行することをお勧めします。
SELECT CONCAT("ALTER TABLE ", TABLE_SCHEMA, '.', TABLE_NAME," ENGINE = InnoDB;")
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA='<db_name>'
AND TABLE_TYPE="BASE TABLE"
AND ENGINE = 'MyIsam'
AND TABLE_NAME != 'qu_la_conversations_search'
手順1〜5が完了したら、LiveAgentのインストーラーを再度実行してください。今度はエラーなく処理が続行されるはずです。