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等更先进的解决方案并不支持它.
 * 已知有几个扩展具有SQLite的数据库更新或安装问题：AbuseFilter、Echo、Flow和LiquidThreads.

安装SQLite
至少需要SQLite 3.8.0版. 此外，为了使用全文搜索，必须在启用FTS3模块的情况下编译SQLite（大多数版本现在都开箱即用）. SQLite3通过PHP的PDO函数工作.


 * 要在基于Debian或Ubuntu的系统上安装SQLite3，请使用.
 * 来自php.net的Windows二进制文件都可以.
 * 需要加载PHP PDO SQLite模块. 您应该在 中取消注释以下两行
 * 你应该把SQLite数据库放在哪里？默认路径似乎是$IP/../data/$dbname.sqlite. webroot之外的任何东西都应该是安全的，把它放在附近是件好事. 或者，如果您愿意，可以将其放在Web根目录中，并确保使用服务器配置拒绝访问它.
 * 你应该把SQLite数据库放在哪里？默认路径似乎是$IP/../data/$dbname.sqlite. webroot之外的任何东西都应该是安全的，把它放在附近是件好事. 或者，如果您愿意，可以将其放在Web根目录中，并确保使用服务器配置拒绝访问它.

在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的文件名.

问题
应该将错误报告给维基媒体的错误跟踪器. 首先检查您的问题是否已经报告，检查的依赖关系并使用搜索. 如果找不到问题，请创建新问题. 如果问题与SQLite后端直接相关，请在MediaWiki→'数据库组件下报告. 否则（如果问题与软件或扩展的一个非常具体的方面有关），请选择适当的产品和组件. 在任何情况下，请采取一些措施使您的错误易于查找和跟踪：提及SQLite是其摘要字段，并使其依赖于标签sqlite.

参见

 * SQLite特定的配置设置：
 * 维护脚本
 * 维护脚本

外部链接

 * Migrating MediaWiki from MySQL to SQLite
 * SQLite主页
 * 维基百科条目SQLite