mysql - Sphinx 无法在只读数据库上重建

标签 mysql ruby-on-rails sphinx thinking-sphinx master-slave

我正在为我的应用程序使用主/从数据库,并且有 2 个从数据库,一个用于 sphinx,一个用于用户,并且根据规则 1 个主数据库

从属数据库设置为只读。问题是,当我在从站上重建 sphinx 时,会出现错误

The MySQL server is running with the --read-only option so it cannot execute this statement 

如何解决这个问题?

最佳答案

正如评论中所确定的,发生这种情况是因为增量索引正在发挥作用,并且它们需要写入访问权限,作为运行完整索引时重置增量标志列的一部分。

如果您希望保留只读访问权限,您可以调查 real-time indices作为带有增量的 SQL 支持索引的替代方案,因为实时索引允许随着底层 ActiveRecord 数据的变化而更新。如果您运行的是 Thinking Sphinx v4,那么 rake 任务根本不会改变,您只需要使用不同的索引类型即可。

如果您使用的是 TS v3,则任务的命名方式会有所不同(regenerate 而不是 rebuildgenerate 而不是 索引)。 The documentation does distinguish between the two major releases .

但是,如果您希望继续使用 SQL 支持的索引和增量,则需要对数据库进行写访问。

关于mysql - Sphinx 无法在只读数据库上重建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55085436/

相关文章:

java - 用java读取具有多个字段的文件

php - Rails、PHP 和参数

ruby-on-rails - 如何使用expect语法编写should_not be_valid

php - sphinx 的控制面板?

php - 在具有多个索引的 PHP 中使用 Sphinx

mysql - 为什么这个 sphinx 查询这么慢?按 id DESC 排序

mysql - 连接三个表 MySQLWhere

Php视频上传错误

php - 每次我尝试显示同一张表的多个字段时,即使在使用 DISTINCT 之后,MySQL 也会重复结果

ruby-on-rails - 本地主机上的 rails 子域