質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
SQLite

SQLiteはリレーショナルデータベース管理システムの1つで、サーバーではなくライブラリとして使用されている。

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

解決済

2015年当時稼働していたデータベースSQliteを使ったWordPressがsyntaxエラーが出て復旧できない

creator.M
creator.M

総合スコア67

SQLite

SQLiteはリレーショナルデータベース管理システムの1つで、サーバーではなくライブラリとして使用されている。

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

2回答

-1評価

1クリップ

801閲覧

投稿2021/11/30 19:46

編集2021/12/07 05:53

古いWordPressをフォルダごとダウンロードされています。
データベースが使えないサーバーだったのえ、SQliteを使って動いていたWordPressのサイトです。
データベースのファイルの日付を確認したところ、2015年でした。

このサイトをXサーバーで運用できるように復旧したいのですが、データベースを読み込みできず困っています。

Sqliteを使ってWordPressは、起動できました。

でも、手元にあるデータベースを読み込むことができず、記事を復旧できないのです。

このエラーが出ます。

Fatal error: in /home/hoge/wp2/wp-content/plugins/sqlite-integration/pdoengine.class.php on line 251

PHPは、7.4.25です。
PHPのバージョンを下げようとしましたが、エラーで出来ませんでした。

プラグインのsqlite-integrationを削除すると、WordPressの起動出来ます。

プラグインのところで、ドロップインを見てみたら、ちゃんとデータベースは、ありました。
このファイルを今ままで使っていたファイルに、入れ替えできたら良いのですが。

単純にファイルの上書きを行っても、できませんでした。

こちらの記事を読んで、SQliteマネージャーを知りました。
https://allabout.co.jp/gm/gc/47422/

サーバーアップロードしましたが、エラーになりました。
Deprecated: Non-static method sqlite::getDbVersion() should not be called statically in /hoge/SQLiteManager-1.2.4/include/SQLiteAutoConnect.class.php on line 12

データベースは、あります。
データベースのフォルダ

##解決の方針
一番望む解決状態は、WordPressのテーマなど外見は、どうでも良いです。
過去に投稿された記事を WordPressで表示できること、編集できるようにできることです。

でも、これまで私が試した中で、PHPのバージョンが上がってしまっているため、低いバージョンのPHPが使えるサーバーでないと、復旧できないのかなと推測しています。

そのためデータベースから内容をエクスポートすることができたら、助かります。
データをエクスポートする方法を、ご教授頂けましたら幸いです。
そして、今のバージョンのPHPで動いているWordPressに、データをインポートして使うことができたらと思っています。

##代替え案
こちらのソフトを使い今回のデータベースが、生きていることを確認できました。
https://jp.navicat.com/
SQL形式でデータベースを保存できましたので、サーバーのデータベースにインポートして、記事の復元を目指しています。

##DB Browser for SQLiteを試しました。
添付した画像のように、syntaxエラーが出ました。
イメージ説明
##SQliteのインポートで、エラーが出ています。

SQL

sqlite> .read ./database/.ht.sqlite Error: near line 1: in prepare, near "SQLite": syntax error (1) Error: near line 228: in prepare, near "";s:7:"": syntax error (1) Error: near line 298: in prepare, near "";s:7:"": syntax error (1) Error: near line 802: in prepare, near "RewriteEngine": syntax error (1) Error: near line 1019: in prepare, near "return": syntax error (1) Error: near line 1020: in prepare, unrecognized token: "}" (1) Error: near line 1022: in prepare, near "$args": syntax error (1) Error: near line 1026: in prepare, near "$my_limi": syntax error (1) Error: near line 1027: in prepare, near "?": syntax error (1) Error: near line 1029: in prepare, near "&": syntax error (1) Error: near line 1031: in prepare, near "&": syntax error (1) Error: near line 1033: in prepare, near "&": syntax error (1) Error: near line 1034: in prepare, near "&": syntax error (1) Error: near line 1035: in prepare, near "&": syntax error (1) Error: near line 1040: in prepare, near "&": syntax error (1) Error: near line 1064: in prepare, near "&": syntax error (1) Error: near line 1065: in prepare, near "&": syntax error (1) Error: near line 1221: in prepare, near "/": syntax error (1) Error: near line 1223: in prepare, near "/": syntax error (1) Error: near line 1225: in prepare, unrecognized token: "}" (1) sqlite>

Navicast15 でSQLで保存したものをインポートした時も、同じエラーが出ました。
エラーの内容をネット検索して調べている段階ですので、まだ進展がないです。

##XAMPPで復旧を試みたところエラーが出る

ダウンロードされたWordPressのファイルをXAMPPのフォルダに入れて、起動しました。
インストールの画面が表示され必要な項目を入力して進めましたが、エラーになりました。

Error occured while creating tables or indexes...
Query was: array ( 0 => 'CREATE INDEX IF NOT EXISTS user_login_key ON wp_users(user_login)', 1 => 'CREATE INDEX IF NOT EXISTS user_nicename ON wp_users(user_nicename)', )
Error message is: malformed database schema (wp_blc_filters) - near "�V": syntax error

データベースが破損しているように思われるので、修復方法をご教授頂けましたら幸いです。
XAMPPは、PHP5.6です。

##コマンドラインで修復を試みましたが、同じ文字でエラーです。

bush

.ht.sqlite .dump | sqlite3 .ht_new.sqlite Error: near line 76: near "�V": syntax error

ひょっとしたらデータベースの文字コードが、違うのでしょうか?
でも、Navicast15で表示したら、投稿された記事を読むことができました。
SQlite3とSQLite2は、違うそうですが・・・
今回2015年に稼働していた WordPressなので、SQlite2の方ではないでしょうか?
SQlite3で修復や読み込みができたら良いのですが、引き続きご教授して頂けましたら幸いです。

Navicast15でクリエとして表示すると、このようになります。
イメージ説明
エラーの71行目は、BSとSOHになっています。
この様子では、文字化けの可能性は、少ないでしょうか?

##dumpしてみました。
/**** ERROR: (11) database disk image is malformed *****/
というエラーが表示されました。

こちらの記事を見つけましたので、これから試します。
https://qiita.com/rupao/items/84fef2d27ae1e7d6a51e

##タイトルが勝手に修正されることに対して
質問の内容が伝わらなくなってしまうので、正確な内容に書き換えました。
「依頼主から受け取った2015年当時稼働していたWordPressを、Xサーバーで稼働できるようにしたい」が、本来の依頼内容です。
でも、Sqliteのデータベースの破損が確実となり、syntaxエラーの修正を模索しているところです。

NIVECAST15でクリエの表示ができたので、修正を試みています。
でも、下記の部分の90行目の

SQL

tablewp_blc_filterswp_blc_filtersCREATE TABLE wp_blc_filters (

のwp_blc_filterswp_blc_filtersが重複しているのかな?と思い一つ減らしたら、syntaxエラーは、なくなりました。
でも、
データベースファイルを開けません。
理由: malformed database schema (swp_blc_filter)
というエラーが出てしまい、GUIのツールで読み込みできないです。
イメージ説明
元に戻すとsyntaxエラーが出ます。

##VS CODEの拡張機能を使っても同じエラー
malformed database schema (wp_blc_filters) - near "�V": syntax error
と同じエラーになります。

NAVI CAST For Sqwliteを使うとソースの修正ができますが、正しい形式を知らないので、復旧できないのです。
修正の仕方を教えていただけましたら、幸いです。

##文字コードも関係あるかも・・・
今日気が付きました。
出先でWindowsのパソコンでVC CODEを使って、挑戦しました。
送られてきたZipファイルを解凍したら、ファイル名が文字化けしていたのです。
よく確かめてみると、依頼主は、Macで圧縮ファイルを作ったようです。

解凍して得たデータベースファイルをVC CODEでSqliteの拡張機能を使い開こうとしたら、エラーが出て開くことができませんでした。

私は、Macで作業していたので、気が付かなったのです。
このデータベースのSyntaxエラーは、何か関係あるかもしれないですね。

データベースの文字コードの件は、数か月前にハマった経験があります。
今回も、とても気になっています。
データベースの文字コードを調べる方法を、ご教授頂けましたら幸いです。

##クリエの冒頭にSQlite3とあります
イメージ説明
このように書かれてあるということは、SQlite3と認識してよろしいですか?

今は、折角 WordPressに書かれた記事を取り出すことができるように、新規にSQLite3データベースを作った WordPressを作って、模索したいと思っています。
アドバイスなど頂けましたら、幸いです。

##データベースのヘッダーを入替えも、状況に変化が無いです。
16進数で比較した結果
データベースとして復旧してWordPressを復旧できたら良いのですが、せめて投稿された記事を取り出すこともが出来たらと思い挑戦を続けています。

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

SQLite

SQLiteはリレーショナルデータベース管理システムの1つで、サーバーではなくライブラリとして使用されている。

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。