「Icinga Mysql 移行エラー: エンジンにテーブルがありません」
P粉358281574
P粉358281574 2023-09-01 19:15:34
0
1
502
<p>我尝试将icinga更新到2.9.1版本,并且为此需要在sql数据库上应用迁移。</p> <p>迁移使用以下sql查询:</p> <p>2.9.0迁移</p> <pre class="brush:php;toolbar:false;">CREATE TABLE `icingaweb_rememberme`( -> id int(10) unsigned NOT NULL AUTO_INCREMENT, -> username varchar(254) COLLATE utf8mb4_unicode_ci NOT NULL, -> passphrase varchar(256) NOT NULL, -> random_iv varchar(24) NOT NULL, -> http_user_agent text NOT NULL, -> expires_at timestamp NULL DEFAULT NULL, -> ctime timestamp NULL DEFAULT NULL, -> mtime timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP, -> PRIMARY KEY (id) -> ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;</pre> <p>2.9.1迁移</p> <pre class="brush:php;toolbar:false;">ALTER TABLE `icingaweb_rememberme` -> MODIFY random_iv varchar(32) NOT NULL;</pre> <p><strong>问题</strong>是,当我尝试执行时,我得到了冲突的错误消息</p> <p><strong>完整的迁移日志</strong></p> <pre class="brush:php;toolbar:false;">MariaDB [(none)]> use icingaweb2 Database changed MariaDB [icingaweb2]> CREATE TABLE `icingaweb_rememberme`( -> id int(10) unsigned NOT NULL AUTO_INCREMENT, -> username varchar(254) COLLATE utf8mb4_unicode_ci NOT NULL, -> passphrase varchar(256) NOT NULL, -> random_iv varchar(24) NOT NULL, -> http_user_agent text NOT NULL, -> expires_at timestamp NULL DEFAULT NULL, -> ctime timestamp NULL DEFAULT NULL, -> mtime timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP, -> PRIMARY KEY (id) -> ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin; ERROR 1050 (42S01): 表'icingaweb_rememberme'已经存在 MariaDB [icingaweb2]> ALTER TABLE `icingaweb_rememberme` -> MODIFY random_iv varchar(32) NOT NULL; ERROR 1932 (42S02): 表'icingaweb2.icingaweb_rememberme'在引擎中不存在</pre> <p>Icinga当前显示此错误(类似于第二个迁移错误)</p> <pre class="brush:php;toolbar:false;">SQLSTATE[42S02]: 基表或视图不存在:1932 表'icingaweb2.icingaweb_rememberme'在引擎中不存在</pre> <p><strong>问题</strong></p> <p>我如何应用迁移,以便集合<code>icingaweb2</code>具有表<code>icingaweb_rememberme</code></p>
P粉358281574
P粉358281574

全員に返信(1)
P粉973899567

答えを見つけました。

MySQL データベースは icingaweb_rememberme.idb という名前のファイルを作成しましたが、対応する frm ファイルがありません。

私は icingaweb_rememberme テーブルを削除し、MySQL ディレクトリに残っている .idb ファイルを削除し、単一のコマンドでテーブルを再作成しました (二次移行を適用した後) 。

これは完全な答えではないかもしれませんし、もっと簡単な解決策があるかもしれませんが、私にとってはこれでうまくいきました。

ファイルやテーブルを削除または削除する予定がある場合は、必ずバックアップしてください

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート