Ubuntu MySQL編譯先前條件與安裝所需文件
一、Ubuntu MySQL編譯先前條件
確認是否已經安裝以下軟件,有些也許不是必須的,但建議還是都裝上。
- apt-get install autoconf automake autotools-dev cpp curl gawk gcc lftp libc6-dev
- linux-libc-dev make libpcre3-dev libpcrecpp0 g++ libtool libncurses5-dev
- aptitude install libmysql++-dev libmysqlclient15-dev checkinstall
- apt-get install python python-dev
二、Ubuntu MySQL安裝所需文件
所需文件列表
- mmseg-0.7.3.tar.gz 中文分詞
- mysql-5.1.26-rc.tar.gz mysql-5.1.26源代碼
- sphinx-0.9.8-rc2.tar.gz sphinx-0.9.8-rc2源代碼
- fix-crash-in-excerpts.patch sphinx支持分詞補丁
- sphinx-0.98rc2.zhcn-support.patch sphinx支持分詞補丁
文件可以到官方下載,附件中我將會提供該系列文件。
三、Ubuntu MySQL開始安裝
先將以上文件傳到 root目錄下
1、mmseg-0.7.3 安裝,解壓安裝文件
- tar -zxvf mmseg-0.7.3.tar.gz
- cd mmseg-0.7.3/
- ./configure
- make
- make install
- cd ../
到此mmseg安裝完畢可以嘗試 輸入mmseg 命令,看是否已經安裝成功
2、 安裝Ubuntu MySQL 5.1.26-rc、Sphinx、SphinxSE存儲引擎
先解壓 MySQL和sphinx源文件
- tar zxvf mysql-5.1.26-rc.tar.gz
- tar zxvf sphinx-0.9.8-rc2.tar.gz
然后給sphinx打上補丁,這個是支持中文必須打的補丁cd sphinx-0.9.8-rc2/
(請確認已經安裝了patch,如果沒有者 使用 apt-get install patch 安裝)
- patch -p1 < ../sphinx-0.98rc2.zhcn-support.patch
- patch -p1 < ../fix-crash-in-excerpts.patch
接著將sphinx下的mysqlse 文件夾下的數據拷貝到mysql-5.1.26-rc/storage/sphinx 下面(這樣才能在編譯mysql的時候把SphinxSE存儲引擎編譯進去)
cp -rf mysqlse ../mysql-5.1.26-rc/storage/sphinx到/mysql-5.1.26-rc/storage/sphinx目錄下確認文件是否已經拷貝成功cd ../下面我們來編譯安裝mysql-5.1.26-rc
cd mysql-5.1.26-rc/sh BUILD/autorun.sh 這步是必須的,請勿遺漏.
使用configure命令確認安裝./configure --prefix=/usr/local/mysql --with-charset=utf8 --with-extra-charsets=all --with-plugins=sphinx確認是否提示可使用make編譯,如果是。
執行 make這步執行時間比較長,一般在10-20分鐘,主要看個人電腦配置編譯成功后.再執行安裝命令(如果出現error,需要重新編譯,一般80%的error都是編譯環境沒有裝好(個人編譯體會))make install //這個過程大概需要1分鐘不到的時間這樣Ubuntu MySQL就已經安裝完畢了.
下面我們來配置和啟動Ubuntu MySQL添加Ubuntu MySQL用戶組和用戶
- groupadd mysql
- useradd –g mysql mysql
給Ubuntu MySQL所在目錄添加Ubuntu MySQL用戶權限chown mysql:mysql /usr/local/mysql –R 將my-medium.cnf 拷貝到安裝根目錄cp /usr/local/mysql/share/mysql/my-medium.cnf /usr/local/mysql/my.cnf給my.cnf文件添加mysql用戶權限chown mysql:mysql /usr/local/mysql/my.cnf
然后修改my.cnf配置在skip-external-locking上面插入(配置可以自定義)
- user = mysql
- pid-file = /usr/local/mysql/mysql.pid
- socket = /tmp/mysq.sock
- port = 3306
- basedir = /usr/local/mysql
- datadir = /usr/local/mysql/data
- tmpdir = /tmp
- language = /usr/local/mysql/share/mysql/English
將里面的# –skin-dbd 注釋掉,否則在執行啟動MySQL命令 時會報錯誤為了能在ubuntu系統下方便的使用MySQL, 我們還需要安裝 mysql-client-5.0 (客戶端)apt-get install mysql-client-5.0初始化數據庫/usr/local/mysql/bin/mysql_install_db --defaults-file=/usr/local/mysql/my.cnf --user=mysql
執行結果Installing MySQL system tables...080917 14:36:16 [Warning] Storage engine 'SPHINX' has conflicting typecode. Assigning value 42.OKFilling help tables...080917 14:36:16 [Warning] Storage engine 'SPHINX' has conflicting typecode. Assigning value 42.OK………………..
以上提示表示執行成功此時你會發現/user/local/mysql 目錄下多了一個data文件夾,這文件夾里存放的是mysql數據內容我們需要給該目錄賦予用戶權限和寫的權限
- chown mysql:mysql -R /usr/local/mysql/data/
- chmod -R o+w /usr/local/mysql/data/
將mysql.server 拷貝成 /etc/init.d/mysqld 文件cp /usr/local/mysql/share/mysql/mysql.server /etc/init.d/mysqld并給mysqld添加執行權利chmod 700 /etc/init.d/mysqld通過執行/etc/init.d/mysqld start 啟動mysql 也可以使用stop | restart 等一些命令然后我們輸入mysql 命令,進去Mysql>輸入show engines;此時我們可以看到已經包含sphinxSE 引擎到此myql部分啟動完畢接著我們來安裝sphinx-0.9.8-rc2
- cd sphinx-0.9.8-rc2/
- CPPFLAGS=-I/usr/include/python2.4
- LDFLAGS=-lpython2.4
- ./configure --prefix=/usr/local/sphinx --with-mysql=/usr/local/mysql
- make
- make install
- cd ../
安裝完成后將sphinx.conf.dist拷貝成sphinx.conf文件cp /usr/local/sphinx/etc/sphinx.conf.dist /usr/local/sphinx/etc/sphinx.conf
修改sphinx.conf中的配置如下:(配置可以自定義)
- sql_host = localhost
- sql_user = root
- sql_pass =
- sql_db = test
- sql_port = 3306
加載索引/usr/local/sphinx/bin/indexer --config /usr/local/sphinx/etc/sphinx.conf --all注: 先要給libmysqlclient.so.16 建立軟鏈接ln -s /usr/local/mysql/lib/mysql/libmysqlclient.so.16 /usr/lib/libmysqlclient.so.16
再通過 /usr/local/sphinx/bin/searchd --config /usr/local/sphinx/etc/sphinx.conf 開啟索引監聽為了下面測試方便,我們先將sphinx.conf自帶的example.sql腳本倒入的mysql中mysql < /usr/local/sphinx/etc/example.sql //創建了一個test庫,并建立了documents測試表和數據到此安裝部分基本結束,大功告成了.
【編輯推薦】