Manual:SQLite/ja



The purpose of this page is to collect information and experiences about running MediaWiki on SQLite.

MediaWiki supports SQLite since 1.17, but please note that this is second-class support, and you may likely run into some bugs. The database most commonly used with MediaWiki is. See Phabricator for a list of issues. MediaWiki requires SQLite or later. しかし、データベースを変更する拡張機能での SQLite のサポート状況はさまざまです.

Is SQLite a good choice for MediaWiki?
MediaWiki で SQLite を使用するには、2 つの重要な注意点があります. まず、多くの拡張機能が SQLite をサポートしている一方で、人気の拡張機能の一部は現在でも SQLite をサポートしていません. さらに、SQLite は 1 つのサーバーを越えて拡張できません. ご利用のウィキが多くの同時利用者と大量のコンテンツを持つようになる可能性がある場合、MySQL のようなプライマリ レプリカ モデルをサポートするデータベース システムを使う方がいいでしょう. その結果、ウィキがこれらの拡張機能の使用に依存する可能性がある場合、またはプライマリ レプリカ データベース システムを使用する必要がある場合は、ウィキに MySQL データベースを使用することが最善となります. SQLite、MySQL、または他のデータベース システムを使用するかどうかは、理想的にはウィキを作成する前に決定されるべきです. なぜなら、いったんウィキを使い始めると、SQLite データベースから MySQL データベースへの変換が難しくなるからです.



SQLite について
SQLite はパブリック ドメインでリリースされているオープン ソースのデータベース ライブラリです. Unlike client-server database management systems, the SQLite library is linked into PHP and thus becomes an integral part of the server process. MediaWiki uses SQLite's functionality through simple function calls, which reduces latency in database access as function calls are more efficient than inter-process communication.

Using SQLite as database backend for MediaWiki has its own pros and cons:


 * 長所


 * You don't have to install and maintain a standalone database server such as MySQL; this significantly reduces efforts spent on administration and removes some points of failure.
 * The former also means that SQLite is much more suitable for portable MediaWiki installs running from a USB stick.
 * You are not restricted by artificial database limitations on shared hosts.
 * The entire database is stored as a single cross-platform file, simplifying backups and migration.


 * 短所


 * SQLite is not that scalable, so if you have a large and popular wiki, you should use MySQL.
 * Although SQLite has its own search engine, it's not supported by more advanced solutions such as Lucene.
 * Several extensions are known to have database update or installation issues with SQLite: AbuseFilter, Echo, Flow, and LiquidThreads.



SQLite のインストール
At least SQLite version + is required. Also, in order to use full text search, SQLite must be compiled with FTS3 module enabled (most builds have it out of the box these days). SQLite3 works via PHP's PDO functions.

You should uncomment the following line in your Anything outside of the webroot should be safe; it's good to keep it nearby. Or, if you feel like it, you could put it in the web root somewhere and make sure to use webserver config to deny access to it.
 * To install SQLite3 on a Debian or Ubuntu based system, use.
 * Windows binaries from php.net are OK.
 * The PHP PDO SQLite module needs to be loaded.
 * Where should you put the SQLite database itself? The default path seems to be $IP/../data/$dbname.sqlite.



SQLiteバックエンド上へのMediaWikiのインストール

 * If SQLite module for PHP is properly installed, MediaWiki installer should offer you an option to use SQLite.
 * If you enter nothing into the "SQLite data directory" field, your will be left empty, which corresponds to   directory in the parent of the document root, however this directory might be different for web scripts and maintenance scripts run from command line, so specifying it explicitly is recommended.



検索エンジン
Search capabilities for SQLite backend was introduced in MediaWiki 1.16. They require SQLite with FTS3 module compiled-in, which is usually present in most modern builds. If you've recently updated your SQLite support to a version that includes FTS3, run the updater as if you're upgrading MediaWiki. After the updater script created the search index table, populate it with. Same applies to switches back to environments without FTS3: re-running the updater will downgrade the table to avoid SQL errors.

トラブルシューティング


端末上でデータベースにアクセスできない
To get command-line access to the database, type on the terminal:

sqlite3 /var/data/database_name.sqlite

replacing  with the directory that was set as the "SQLite data directory" during the installation process. Alternatively, look for inside.

This can be tricky if you are not experienced about SQLite and run  - because this will open a completely different database (creating it if it doesn't exist) since SQLite interprets the argument not as a system-wide database name, but instead as the file name that contains the db.

問題点
Bugs should be reported to Wikimedia's bug tracker. First check if your problem was already reported - check the dependencies of tag and use search. If you can't find your problem, create a new issue. In any case please take some steps to make your bug easy to find and track: mention SQLite in its summary field and make it have the project tag SQLite.

Performance Tips

 * If possible, ensure you have the APCu php extension installed and set to CACHE_ACCEL. If no cache is present, MediaWiki will use the database as a cache backend, which can lead to write contention. On Sqlite this can significantly slow down your wiki.
 * Make sure your SQLite database is in WAL mode (Write-Ahead Logging – WAL). This can have a major impact on performance when people are viewing and editing your site at the same time. You can do this by using the sqlite command line tool to open the DB, and run the command.



関連項目

 * SQLite-specific configuration settings:
 * - MediaWiki 1.35 and before
 * MediaWiki 1.36+
 * MediaWiki 1.36+



外部リンク

 * Migrating MediaWiki from MySQL to SQLite
 * Tool to migrate MediaWiki from SQLite to MySQL
 * SQLite のホームページ
 * Wikipedia article on SQLite