MySQL · 2 min read · Jan 29, 2026
Sphinx를 MySQL 스토리지 엔진으로 사용하기 (SphinxSE)
Sphinx를 MySQL 스토리지 엔진으로 사용하기 (SphinxSE)
By Nedim Hadzimahmutovic < [email protected] >
Version: v1.0
Last Change: May 9, 2010
SphinX는 MySQL을 위한 훌륭한 전면 텍스트 검색 엔진입니다. Sphinx 데몬 설치는 소스에서 컴파일하거나 .DEB/.RPM 패키지를 사용할 수 있어 간단했습니다. 그러나 SphinxSE는 실행 중인 MySQL 서버에 플러그인으로 설치해야 하므로 약간 까다로웠습니다.
따라서 Debian 또는 CentOS를 사용하고 .deb 또는 .rpm 패키지에서 MySQL을 설치하는 경우 다음과 같이 진행합니다.
MySQL 5.1이 필요합니다. 이 버전은 플러그인을 지원하며 SphinxSE 지원을 위해 MySQL을 다시 컴파일할 필요가 없습니다.
MySQL 패키지 버전을 확인합니다:
For Debian:
# dpkg --list | grep mysql-server ii mysql-server-5.1 5.1.45-0.dotdeb.0 MySQL 데이터베이스 서버 바이너리For CentOS:
# rpm -qa | grep mysql-server mysql-server-5.1.45-1.el5.remi- http://www.mysql.com/downloads/mysql/ 에서 서버에 설치된 것과 동일한 버전의 MySQL 소스 코드를 다운로드합니다. 버전이 일치해야 합니다! Sphinx 소스 코드를 다운로드합니다.
# cd /tmp/
# wget 'http://mysql.mirrors.hoobly.com/Downloads/MySQL-5.1/mysql-5.1.45.tar.gz'
# wget 'http://sphinxsearch.com/downloads/sphinx-0.9.9.tar.gz'두 개의 아카이브를 추출합니다:
# tar -xzvf mysql-5.1.45.tar.gz
# tar -xzvf sphinx-0.9.9.tar.gz- sphinx에서 mysql로 mysqlse 디렉토리를 복사합니다:
# cp -R sphinx-0.9.9/mysqlse/ mysql-5.1.45/storage/sphinx빌드:
cd mysql-5.1.45 sh BUILD/autorun.sh; ./configure; make잠시 휴식을 취하세요. 시간이 좀 걸릴 것입니다.
Sphinx.SO 파일을 MySQL 플러그인 디렉토리로 복사합니다:
# cp storage/sphinx/.libs/ha_sphinx.* /usr/lib64/mysql/plugin플러그인 디렉토리는 시스템에 따라 다를 수 있습니다.
- 루트 사용자로 mysql 콘솔에 로그인합니다. Sphinx 플러그인을 설치합니다.
# mysql -u root -p -h localhost mysql> INSTALL PLUGIN sphinx SONAME 'ha_sphinx.so';Sphinx 엔진이 활성화되었는지 확인합니다:
mysql> show engines;mysql> show engines;
+------------+---------+----------------------------------------------------------------+--------------+------+------------+
| Engine | Support | Comment | Transactions | XA | Savepoints |
+------------+---------+----------------------------------------------------------------+--------------+------+------------+
| InnoDB | YES | 트랜잭션, 행 수준 잠금 및 외래 키를 지원합니다. | YES | YES | YES |
| MRG_MYISAM | YES | 동일한 MyISAM 테이블의 모음 | NO | NO | NO |
| BLACKHOLE | YES | /dev/null 스토리지 엔진 (여기에 쓰는 모든 것이 사라짐) | NO | NO | NO |
| CSV | YES | CSV 스토리지 엔진 | NO | NO | NO |
| SPHINX | YES | Sphinx 스토리지 엔진 0.9.9 | NO | NO | NO |
| FEDERATED | YES | 연합 MySQL 스토리지 엔진 | NO | NO | NO |
| ARCHIVE | YES | 아카이브 스토리지 엔진 | NO | NO | NO |
| MEMORY | YES | 해시 기반, 메모리에 저장, 임시 테이블에 유용함 | NO | NO | NO |
| MyISAM | DEFAULT | MySQL 3.23부터의 기본 엔진으로 뛰어난 성능 | NO | NO | NO |
+------------+---------+----------------------------------------------------------------+--------------+------+------------+
그게 다입니다!
플러그인이 설치되었는지 확인하는 또 다른 방법은 다음 명령어를 사용하는 것입니다:
mysql> select * from mysql.plugin;mysql> select * from mysql.plugin;
+--------+--------------+
| name | dl |
+--------+--------------+
| sphinx | ha_sphinx.so |
+--------+--------------+
1 row in set (0.00 sec)
나중에 어떤 이유로 Sphinx 플러그인을 제거해야 하는 경우, 다음과 같이 진행합니다:
mysql> UNINSTALL PLUGIN sphinx;노트:
일부 MySQL 버전에는 버그가 있으니 유의하시기 바랍니다 - 플러그인을 설치할 때 플러그인 식별자가 대소문자에 대해 일관되게 처리되지 않습니다.
다음 오류가 발생하면:
mysql> INSTALL PLUGIN sphinx SONAME 'ha_sphinx.so'; ERROR 1062 (23000): Duplicate entry 'sphinx' for key 'PRIMARY'mysql.plugin 테이블에서 sphinx 플러그인 항목을 수동으로 삭제해야 합니다. 업그레이드 후 이 오류가 발생할 수 있습니다. Sphinx 비밀번호 관리자, 마스터 비밀번호, 비밀번호 관리자 또는 비밀번호 관리자와 비밀번호 저장소, 사용자 마스터 비밀번호 및 무작위 비밀번호와 같은 비밀번호 관리에 대한 내용은 다음 가이드에서 다룰 예정입니다.
새 게시물을 받은 편지함에서 받기
스팸은 없습니다. 언제든지 구독 해지 가능합니다.