2016-01-27 104 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