"Icinga Mysql 迁移错误:引擎中缺少表"
P粉358281574
P粉358281574 2023-09-01 19:15:34
[MySQL讨论组]
<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`( -&gt; id int(10) unsigned NOT NULL AUTO_INCREMENT, -&gt; username varchar(254) COLLATE utf8mb4_unicode_ci NOT NULL, -&gt; passphrase varchar(256) NOT NULL, -&gt; random_iv varchar(24) NOT NULL, -&gt; http_user_agent text NOT NULL, -&gt; expires_at timestamp NULL DEFAULT NULL, -&gt; ctime timestamp NULL DEFAULT NULL, -&gt; mtime timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP, -&gt; PRIMARY KEY (id) -&gt; ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;</pre> <p>2.9.1迁移</p> <pre class="brush:php;toolbar:false;">ALTER TABLE `icingaweb_rememberme` -&gt; MODIFY random_iv varchar(32) NOT NULL;</pre> <p><strong>问题</strong>是,当我尝试执行时,我得到了冲突的错误消息</p> <p><strong>完整的迁移日志</strong></p> <pre class="brush:php;toolbar:false;">MariaDB [(none)]&gt; use icingaweb2 Database changed MariaDB [icingaweb2]&gt; CREATE TABLE `icingaweb_rememberme`( -&gt; id int(10) unsigned NOT NULL AUTO_INCREMENT, -&gt; username varchar(254) COLLATE utf8mb4_unicode_ci NOT NULL, -&gt; passphrase varchar(256) NOT NULL, -&gt; random_iv varchar(24) NOT NULL, -&gt; http_user_agent text NOT NULL, -&gt; expires_at timestamp NULL DEFAULT NULL, -&gt; ctime timestamp NULL DEFAULT NULL, -&gt; mtime timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP, -&gt; PRIMARY KEY (id) -&gt; ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin; ERROR 1050 (42S01): 表'icingaweb_rememberme'已经存在 MariaDB [icingaweb2]&gt; ALTER TABLE `icingaweb_rememberme` -&gt; 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

I found the anwser.

MySQL数据库创建了一个名为icingaweb_rememberme.idb的文件,但没有相应的frm文件。

我已经删除了icingaweb_rememberme表,移除了在MySQL目录中剩下的.idb文件,并使用单个命令重新创建了该表(已经应用了第二次迁移)。

这可能不是完整的答案,或者可能有更简单的解决方案,但对我来说这是有效的。

如果您计划删除或移除文件和表,请记得备份

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号