2016-01-27 64 views
0

Ubuntu 14.04安装,带有nginx,passenger和postgresql。以下步骤执行:通过MySQL的thinking_sphinx连接

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只显示一个searchd的过程

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服务器root密码不被消化
  2. nginx的莫名其妙阻碍的连接

别人呢?如何验证/断言?

+0

您是否试图保护与Sphinx的MySQL协议连接?或者对于Sphinx连接的MySQL数据库? – pat

+0

保护MySQL协议连接。数据库是postgreSQL。 – Jerome

回答

0

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

+0

我通过'sudo apt-get remove --purge mysql-server mysql-client mysql-common sudo apt-get auto删除sudo apt-get auto clean'来重新安装,并重新安装,省略了'mysql_secure_installation'并且包括'sudo apt-得到安装sphinx search'重建运行正常。 'whereis'返回'searchd:/ usr/bin/searchd/usr/share/man/man1/searchd.1.gz'。是通过MySQL协议获得相同的连接...所以有一些不正确的上游...来自development.sphinx.conf的 – Jerome

+0

:'搜索{listen = 127.0.0.1:9312:mysql41'然后由'sudo netstat - ltnp' =>'tcp 0 0 127.0.0.1:9312 0.0.0.0:* LISTEN 11164/searchd'然而'tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 10274/mysqld'出现,我想知道是否这是犹太教徒... – Jerome

+0

OK ...'sudo reboot'然后是'RAILS_ENV =开发包exec rake ts:rebuild'以使引擎运行创建一个适当的工作环境。仍然有一个'968/mysqld'端口被占用。任何想法为什么这会解决问题? – Jerome

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 '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应该显示在thinking_sphinx.yml定义和配置呈现/ [your_environment] .sphinx.conf

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

最后,

监听端口
sudo reboot