think_sphinx通过MySQL连接

时间:2016-01-27 13:09:08

标签: mysql postgresql thinking-sphinx

Ubuntu 14.04安装,带有nginx,passenger和postgresql。运行以下步骤:

sudo apt-get update && sudo apt-get upgrade -y
sudo apt-get install mysql-server
sudo mysql_secure_installation  _for allowing only localhost connection_
sudo apt-get install sphinxsearch

宝石文件

gem 'mysql2', '0.3.18', :platform => :ruby
gem 'thinking-sphinx', '3.1.4'

thinking_sphinx.yml指定

  mysql41: 9312

运行:

RAILS_ENV=development bundle exec rake ts:rebuild

正确进行:total 112 writes, 0.079 sec, 485.0 kb/call avg, 0.7 msec/call avg Started searchd successfully (pid: 21644).

netstat -ltnp仅显示一个搜索过程

tcp        0      0 127.0.0.1:9312          0.0.0.0:*               LISTEN      21644/searchd

所以人们得出的结论是,一切都好......对吗? [讨厌的蜂鸣器]

ThinkingSphinx::ConnectionError 
Error connecting to Sphinx via the MySQL protocol. 
Error connecting to Sphinx via the MySQL protocol. _nice... stated twice!_
Can't connect to MySQL server on '127.0.0.1' (111)

非连接的可能途径:

  1. mySql-server root password not digested
  2. nginx以某种方式阻碍连接
  3. 他人?如何验证/断言?

2 个答案:

答案 0 :(得分:0)

虽然Sphinx实现了用于查询的MySQL协议,但它并没有关注身份验证,因此Thinking Sphinx也没有使用这些字段。所以我不确定mysql_secure_installation是否适合这项工作 - 当然,如果它试图使用身份验证来控制访问权限。如果您不想允许与Sphinx进行外部通信,您是否可以阻止该端口?

答案 1 :(得分:0)

在Pat的观察基础上,以下让我运行Ubuntu 14.04安装,使用nginx,passenger和postgresql。

sudo apt-get update && sudo apt-get upgrade -y
sudo apt-get install mysql-server
sudo apt-get install sphinx search

确保gem文件

gem 'mysql2', '0.3.18', :platform => :ruby
gem 'thinking-sphinx', '3.1.4'
# alternately with JRuby
gem 'jdbc-mysql',      '~> 5.1.28', :platform => :jruby

thinking_sphinx.yml必须指定

  mysql41: [port_number]

多个搜索过程需要不同的端口 配置,索引和启动:

RAILS_ENV=[your_environment] bundle exec rake ts:rebuild

sudo netstat -ltnp应该显示think_sphinx.yml中定义的侦听端口,并在config / [your_environment]中显示.sphinx.conf

tcp        0      0 127.0.0.1:[port_number]          0.0.0.0:*               LISTEN      21644/searchd

最后,

sudo reboot