Manual:SQLite/zh

从MediaWiki 1.17开始，对MediaWiki的SQLite支持具有生产质量. 自MediaWiki 1.13版以来，SQLite支持已成为主要代码库的一部分. 下面有一些关于将SQLite库安装到PHP环境中的注释.

关于SQLite
SQLite是一个发布到公共领域的开源数据库. 与客户端-服务器数据库管理系统不同，SQLite库是链入PHP的，因此成为不可或缺的一部分服务器进程. MediaWiki通过简单的函数调用使用SQLite的功能，这减少了数据库访问中的潜伏，因为函数调用比进程间通信更有效.

使用SQLite作为MediaWiki的数据库后端有其自身的优点和缺点：


 * 优点


 * 您不必安装和维护MySQL等独立数据库服务器，这大大减少了用于管理的工作并消除了一些失败点.
 * 前者也意味着SQLite更适合从USB记忆棒运行的便携式MediaWiki安装.
 * 您不受共享主机上的人为数据库限制的限制.
 * 整个数据库存储为单个跨平台文件，简化了备份和迁移.


 * 缺点


 * SQLite不具备可扩展性，所以如果你有一个大而流行的wiki，你应该使用MySQL.
 * 虽然SQLite有自己的搜索引擎，但Lucene等更先进的解决方案并不支持它.
 * 某些PHP版本（RHEL5及更旧版本、旧版本的XAMPP）附带过时的SQLite版本，这些版本限制了功能并可能包含错误.
 * 已知有几个扩展具有SQLite的数据库更新或安装问题：AbuseFilter、Echo、Flow和LiquidThreads.

安装SQLite
虽然由于，至少SQLite版本3.3.7是必需，但建议使用SQLite 3.6，因为它修复了一些数据完整性错误. 此外，为了使用全文搜索，必须在启用FTS3模块的情况下编译SQLite（大多数版本现在都开箱即用）. SQLite3通过PHP的PDO函数工作.

webroot之外的任何东西都应该是安全的，把它放在附近是件好事. 或者，如果您愿意，可以将其放在Web根目录中，并确保使用服务器配置拒绝访问它.
 * 要在基于Debian的系统上安装SQLite3，请使用.
 * 在较新的Ubuntu和可能的其他发行版上，该包被称为 （最后没有3个！），请小心.
 * 来自php.net的Windows二进制文件都可以.
 * 自PHP 5.1.0起，SQLite依赖于PDO. 您应该在 中取消注释以下两行 （注意：有时你甚至不能使用 来检查它们是否存在，因为当PDO不存在时，启用SQLite的PHP会崩溃或失败，尤其是在Windows上）：
 * （Windows： ）
 * （Windows： ）
 * 你应该把SQLite数据库放在哪里？默认路径似乎是$IP/../data/$dbname.sqlite.

在SQLite后端安装MediaWiki

 * 如果正确安装了适用于PHP的SQLite模块，MediaWiki安装程序（ ）应该为您提供使用SQLite的选项. 在1.16之前的MediaWiki版本上，您需要在数据库用户名和数据库密码字段中输入内容，以便安装程序继续，即使SQLite不需要它们.
 * 如果在SQLite数据目录字段中没有输入任何内容，则将保留为空，这对应于文档根目录的父代中的 目录，但此目录可能与Web不同 脚本和维护脚本从命令行运行，因此建议明确指定它.

搜索引擎
MediaWiki 1.16中引入了SQLite后端的搜索功能. 它们需要SQLite编译的FTS3模块，这通常存在于大多数现代版本中. 如果您最近将SQLite支持更新为包含FTS3的版本，运行更新程序，就像您要升级MediaWiki一样. updater脚本创建搜索索引表后，使用填充它. 同样适用于切换回没有FTS3的环境：重新运行更新程序将降级表以避免SQL错误.

无法访问终端上的数据库
要获得对数据库的命令行访问，请在终端上键入：

sqlite3 /var/data/database_name.sqlite

将 替换为在安装过程中设置为SQLite数据目录. 或者，在中查找.

如果您没有SQLite经验并运行 ，这可能会很棘手，因为这将打开一个完全不同的数据库（如果它不存在则创建它），因为SQLite将该参数解释为不是系统全范围的数据库名称，而是作为包含db的文件名.

问题
应该将错误报告给维基媒体的错误跟踪器. 首先检查您的问题是否已经报告，检查$ phab的依赖关系并使用搜索. If you can't find your problem, create a new issue. If the problem is directly related to SQLite backend, report it under MediaWiki → Database component. Otherwise (if the problem is related to one very specific aspect, of the software or an extension), select an appropriate product and component. In any case please take some steps to make your bug easy to find and track: mention SQLite is its summary field and make it depend on bug 22257.

参见

 * SQLite-specific configuration settings:


 * 维护脚本

外部链接

 * Migrating Mediawiki from MySQL to SQLite
 * SQLite home page
 * Wikipedia article on SQLite