न तो
स्फिंक्स और न ही
पेरकोना सर्वर को एक विशेष प्रस्तुति की आवश्यकता है। SphinxSE मुख्य नहीं है, लेकिन किसी तरह से Sphinx searchd तक पहुँचने के लिए एक अधिक सुविधाजनक इंटरफ़ेस है, जिसे MySQL प्लगइन के लिए स्टोरेज इंजन के रूप में डिज़ाइन किया गया है।
स्फिंक्स प्रलेखन स्फिंक्स के लिए स्थापना प्रक्रिया का वर्णन करता है, लेकिन यह काम नहीं करता है। कटौती के तहत, स्फिंक्स के साथ पेरकोना के संयोजन पर एक छोटा निर्देश है, जो मेरे लिए काम करता है और संभवतः, किसी को स्वस्थ नींद के कुछ घंटे बचाएगा।
इसलिए, हमारे पास Percona Server 5.5.28 और Sphinx 2.0.6 संकुल से संस्थापित है। मेरे मामले में, यह CentOS 6 पर RPM है।
यदि स्फिंक्स स्थापित नहीं है, तो libmysqlclient.so.x की आवश्यकता होती हैऔर सिस्टम में लाइब्रेरी का केवल एक और हालिया संस्करण है, बस पेरकोना-सर्वर-शेयर्ड-कॉम्पिटिटर पैकेज स्थापित करें
प्लगइन बनाने के लिए, हमें दोनों पैकेजों के स्रोतों की आवश्यकता है। डाउनलोड और अनपैक करें:
[user@host ~]$ wget http://sphinxsearch.com/files/sphinx-2.0.6-release.tar.gz [user@host ~]$ tar -xzf sphinx-2.0.6-release.tar.gz [user@host ~]$ wget http://www.percona.com/redir/downloads/Percona-Server-5.5/Percona-Server-5.5.28-29.1/source/Percona-Server-55-5.5.28-rel29.1.334.rhel6.src.rpm [user@host ~]$ rpm -i Percona-Server-55-5.5.28-rel29.1.334.rhel6.src.rpm [user@host ~]$ cd rpmbuild/ [user@host rpmbuild]$ rpmbuild -bp SPECS/percona-server.spec
हम
आधिकारिक दस्तावेज से पहले दो चरण करते हैं, वे दोनों विधियों के लिए सामान्य हैं:
[user@host rpmbuild]$ cd BUILD/Percona-Server-5.5.28-rel29.1/Percona-Server-5.5.28-rel29.1/ [user@host Percona-Server-5.5.28-rel29.1]$ cp -R ~/sphinx-2.0.6-release/mysqlse storage/sphinx [user@host Percona-Server-5.5.28-rel29.1]$ sh BUILD/autorun.sh
विधि 1 - आधिकारिक
हमें MySQL को पूरी तरह से बनाने और स्थापित करने की पेशकश की जाती है। बेशक, यह हमें शोभा नहीं देता। हम केवल प्लगइन बनाने की कोशिश कर रहे हैं:
[user@host Percona-Server-5.5.28-rel29.1]$ ./configure [user@host Percona-Server-5.5.28-rel29.1]$ cd storage/sphinx/ [user@host sphinx]$ make
इकट्ठा किया है। इसे, MySQL प्लगइन्स के साथ निर्देशिका में कॉपी करें (पथ को अपने साथ बदलें):
[root@host sphinx]
अब हम प्लगइन स्थापित करने के लिए mysql में चढ़ते हैं:
[user@host sphinx]$ mysql -uroot -p mysql> INSTALL PLUGIN sphinx SONAME 'ha_sphinx.so'; mysql> SHOW ENGINES;
हम इंजन की सूची में
SPHINX देखते हैं - सब कुछ ठीक लग रहा है। एक खोज तालिका बनाएँ:
CREATE TABLE sphinx ( id BIGINT UNSIGNED NOT NULL, weight INTEGER NOT NULL, query VARCHAR(3072) NOT NULL, INDEX(query) ) ENGINE=SPHINX CONNECTION="sphinx://127.0.0.1:9312/*";
टिप्पणीप्रलेखन में, BIGINT और 127.0.0.1 के बजाय, INTEGER और लोकलहोस्ट को क्रमशः इंगित किया गया है, लेकिन उनके साथ एक तालिका नहीं बनाई गई है और मेजबान हल नहीं करता है।
और सेगफॉल्ट में गिर जाते हैं। DBMS इस तालिका के किसी भी एक्सेस पर क्रैश हो जाता है, और तब भी जब
शो टेबल क्वेरी होती है।
विधि 2 - कार्य
Google से हम जादुई कुंजी
-DBUILD_CONFIG = mysql_release for cmake के बारे में सीखते हैं।
[user@host Percona-Server-5.5.28-rel29.1]$ rm -f CMakeCache.txt [user@host Percona-Server-5.5.28-rel29.1]$ cmake . -DBUILD_CONFIG=mysql_release [user@host Percona-Server-5.5.28-rel29.1]$ cd storage/sphinx/ && make
छिपा हुआ पाठउस पोस्ट में अभी भी कई डरावने विकल्प हैं, लेकिन उन्हें केवल एक पूर्ण MySQL बिल्ड की आवश्यकता है।
कैश को मैन्युअल रूप से साफ़ करने और cmake शुरू करने के बजाय, आप cmake / config.pl को संपादित कर सकते हैं
-my $cmakeargs = ""; +my $cmakeargs = "-DBUILD_CONFIG=mysql_release";
और कॉन्फ़िगर कॉन्फ़िगर करें।
Ha_sphinx.so को / usr / lib64 / mysql / plugin / को कॉपी करें और
पेरक को पुनरारंभ करें। अजीब तरह से, यह काम करता है।