Ubuntu MySQL編譯先前條件與安裝所需文件
一、Ubuntu MySQL編譯先前條件
確認(rèn)是否已經(jīng)安裝以下軟件,有些也許不是必須的,但建議還是都裝上。
- 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支持分詞補(bǔ)丁
- sphinx-0.98rc2.zhcn-support.patch sphinx支持分詞補(bǔ)丁
文件可以到官方下載,附件中我將會(huì)提供該系列文件。
三、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 命令,看是否已經(jīng)安裝成功
2、 安裝Ubuntu MySQL 5.1.26-rc、Sphinx、SphinxSE存儲(chǔ)引擎
先解壓 MySQL和sphinx源文件
- tar zxvf mysql-5.1.26-rc.tar.gz
- tar zxvf sphinx-0.9.8-rc2.tar.gz
然后給sphinx打上補(bǔ)丁,這個(gè)是支持中文必須打的補(bǔ)丁cd sphinx-0.9.8-rc2/
(請(qǐng)確認(rèn)已經(jīng)安裝了patch,如果沒有者 使用 apt-get install patch 安裝)
- patch -p1 < ../sphinx-0.98rc2.zhcn-support.patch
- patch -p1 < ../fix-crash-in-excerpts.patch
接著將sphinx下的mysqlse 文件夾下的數(shù)據(jù)拷貝到mysql-5.1.26-rc/storage/sphinx 下面(這樣才能在編譯mysql的時(shí)候把SphinxSE存儲(chǔ)引擎編譯進(jìn)去)
cp -rf mysqlse ../mysql-5.1.26-rc/storage/sphinx到/mysql-5.1.26-rc/storage/sphinx目錄下確認(rèn)文件是否已經(jīng)拷貝成功cd ../下面我們來編譯安裝mysql-5.1.26-rc
cd mysql-5.1.26-rc/sh BUILD/autorun.sh 這步是必須的,請(qǐng)勿遺漏.
使用configure命令確認(rèn)安裝./configure --prefix=/usr/local/mysql --with-charset=utf8 --with-extra-charsets=all --with-plugins=sphinx確認(rèn)是否提示可使用make編譯,如果是。
執(zhí)行 make這步執(zhí)行時(shí)間比較長,一般在10-20分鐘,主要看個(gè)人電腦配置編譯成功后.再執(zhí)行安裝命令(如果出現(xiàn)error,需要重新編譯,一般80%的error都是編譯環(huán)境沒有裝好(個(gè)人編譯體會(huì)))make install //這個(gè)過程大概需要1分鐘不到的時(shí)間這樣Ubuntu MySQL就已經(jīng)安裝完畢了.
下面我們來配置和啟動(dòng)Ubuntu MySQL添加Ubuntu MySQL用戶組和用戶
- groupadd mysql
- useradd –g mysql mysql
給Ubuntu MySQL所在目錄添加Ubuntu MySQL用戶權(quán)限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用戶權(quán)限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 注釋掉,否則在執(zhí)行啟動(dòng)MySQL命令 時(shí)會(huì)報(bào)錯(cuò)誤為了能在ubuntu系統(tǒng)下方便的使用MySQL, 我們還需要安裝 mysql-client-5.0 (客戶端)apt-get install mysql-client-5.0初始化數(shù)據(jù)庫/usr/local/mysql/bin/mysql_install_db --defaults-file=/usr/local/mysql/my.cnf --user=mysql
執(zhí)行結(jié)果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………………..
以上提示表示執(zhí)行成功此時(shí)你會(huì)發(fā)現(xiàn)/user/local/mysql 目錄下多了一個(gè)data文件夾,這文件夾里存放的是mysql數(shù)據(jù)內(nèi)容我們需要給該目錄賦予用戶權(quán)限和寫的權(quán)限
- 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添加執(zhí)行權(quán)利chmod 700 /etc/init.d/mysqld通過執(zhí)行/etc/init.d/mysqld start 啟動(dòng)mysql 也可以使用stop | restart 等一些命令然后我們輸入mysql 命令,進(jìn)去Mysql>輸入show engines;此時(shí)我們可以看到已經(jīng)包含sphinxSE 引擎到此myql部分啟動(dòng)完畢接著我們來安裝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 開啟索引監(jiān)聽為了下面測(cè)試方便,我們先將sphinx.conf自帶的example.sql腳本倒入的mysql中mysql < /usr/local/sphinx/etc/example.sql //創(chuàng)建了一個(gè)test庫,并建立了documents測(cè)試表和數(shù)據(jù)到此安裝部分基本結(jié)束,大功告成了.
【編輯推薦】