スポンサーリンク

このドキュメントの内容は、以下の通りです。

はじめに

MediaWiki の SQLite のデータベースにアクセスしたときに、

database disk image is malformed sqlite

というエラーが発生しました。

データベースにアクセスが完全にできないわけではないのですが、特定のテーブルにアクセスしようとすると、上記のエラーが出ました。

日本語の意味は?


そもそも、このメッセージの意味はなんでしょうか?それとなく、データベースディスクイメージがおかしいよ、という風に見えますね。

database disk image is malformed sqlite


Google翻訳さんに日本語の意味を教えてもらいました。

データベースのディスクイメージが不正な形式のsqliteです


要するに、SQLite のデータベースディスク・ファイルが壊れているようです。

直すための試行錯誤

SQLite で pragma integrity_check を実行して、完全製のチェックをしてみると、エラーが出てきました。

解決方法

やり方は、一度、データベースをダンプして、それから新しいデータベースにインポートします。

まずは、データベースをダンプします。
sqlite dbname
sqlite> .mode insert
sqlite> .output db.sql
sqlite> .dump
sqlite> .exit

新しいデータベースを作ります。
sqlite3 newfile < db.sql

そして、データベースを入れ替えます。

mv dbname old
mv newfile dbname

注意事項


しかしながら、必ずしも、うまくいくわけでもないようです。
500MB ほどある データベースファイルをダンプしたところ、 10MB のファイルができました。
おそらく、途中までしか読めなかったのではないでしょうか。

予防措置


日頃からデータベースのバックアップは、きちんと とっておいたほうがいいでしょう。

スポンサーリンク
スポンサーリンク
 
いつもシェア、ありがとうございます!


もっと情報を探しませんか?

関連記事

最近の記事

人気のページ

はてなの人気のブックマーク

スポンサーリンク
 

過去ログ

2017 : 01 02 03 04 05 06 07 08 09 10 11 12
2016 : 01 02 03 04 05 06 07 08 09 10 11 12
2015 : 01 02 03 04 05 06 07 08 09 10 11 12
2014 : 01 02 03 04 05 06 07 08 09 10 11 12
2013 : 01 02 03 04 05 06 07 08 09 10 11 12
2012 : 01 02 03 04 05 06 07 08 09 10 11 12
2011 : 01 02 03 04 05 06 07 08 09 10 11 12
2010 : 01 02 03 04 05 06 07 08 09 10 11 12
2009 : 01 02 03 04 05 06 07 08 09 10 11 12
2008 : 01 02 03 04 05 06 07 08 09 10 11 12
2007 : 01 02 03 04 05 06 07 08 09 10 11 12
2006 : 01 02 03 04 05 06 07 08 09 10 11 12
2005 : 01 02 03 04 05 06 07 08 09 10 11 12
2004 : 01 02 03 04 05 06 07 08 09 10 11 12
2003 : 01 02 03 04 05 06 07 08 09 10 11 12

サイト

Vim入門

C言語入門

C++入門

JavaScript/Node.js入門

Python入門

FreeBSD入門

Ubuntu入門

セキュリティ入門

パソコン自作入門

ブログ

トップ


プライバシーポリシー