Hightman 论坛

完整版: (安装手记) MySQL-5.1.11~12 全文检索分词插件
您当前正在浏览的是一个简化版本. 要观看完整版本, 请点这儿.
嘻嘻,快疯了!安装了两天时间,重新安装系统20多遍,终于在Hightman的协助下完成安装。

其中安装命令主要来自Hightman和atlascn兄弟,我只是将其汇总,并提要关键点。

请各位参阅安装手记:

1.系统安装 (我用的ubuntu 8.04 server)

内容:注意安装SSH和Samba服务,其他的这里不用我说了吧。。。。。。略

我的用户名:u2m

2.安装需要的工具和库

内容:略
命令:sudo apt-get install automake autoconf gcc libc6-dev make build-essential zlib1g-dev libncurses5-dev;

3.配置Samba

内容:具体配置略(参考附件),这里记得把 /var/www 设置为Samba的目录
命令:
sudo mkdir /var/www
sudo chmod 777 /var/www
sudo rm samba/smb.conf
sudo vim samba/smb.conf
把附件内容复制进去,然后wq,退出
sudo /etc/init.d/samba reload

4.复制文件
内容:通过Smaba把文件复制到ubuntu,注意这里是/var/www目录,接着将它放到你自己的pwd
命令:
复制wordlist-all.tgz 和mysql-5.1.11-hi1.tgz文件
pwd
cp /var/www/mysql-5.1.11-hi1.tgz .

5.解压mysql-5.1.11-hi1.tgz
tar xvzf mysql-5.1.11-hi1.tgz

6.进行configure
内容:注意我的目录是/usr/local/mysql5
命令:
cd mysql-5.1.11-hi1
./configure --prefix=/usr/local/mysql5 --with-charset=gbk --with-extra-charsets=all --with-plugins=fthightman

7.进行make
内容:略。。。这里等待要比较久。。。。,如果没有安装库,这里会报错
命令:make

8.进行install
内容:进行安装,注意这里必须要sudo
命令:sudo make install

9.配置用户属性
命令:
sudo groupadd mysql
sudo useradd -g mysql mysql

10.复制配置文件
sudo cp /home/u2m/mysql-5.1.11-hi1/support-files/my-huge.cnf /etc/my.cnf

11.进行相关配置
cd /usr/local/mysql5 (注意这里是mysql5的安装目录)
sudo /usr/local/mysql5/bin/mysql_install_db --user=mysql
sudo chown -R root .
sudo chown -R mysql var
sudo chgrp -R mysql .

(此时可用/usr/mysql5/bin/mysqld_safe --user=mysql & 来启动mysql,停止用:bin/mysqladmin shutdown)

12.安装词典
cd /var/www
tar xvzf wordlist-all.tgz
cd wordlist-all
sudo cp *.* /usr/local/mysql5/share/mysql/

13.安装分词插件
sudo vim /usr/local/mysql5/share/mysql/mysql.server
在export PATH后加
export LD_LIBRARY_PATH=/usr/local/mysql5/lib/mysql
sudo cp /usr/local/mysql5/share/mysql/mysql.server /etc/init.d/mysql
sudo chmod +x /etc/init.d/mysql
chkconfig --add mysql (此时可以用 /etc/init.d/mysql start|stop 来停止启动mysql)

sudo /etc/init.d/mysql start
sudo /usr/local/mysql5/bin/mysql
mysql>SET PASSWORD FOR 'root'@'localhost' = PASSWORD('123456');
mysql>delete from mysql.user where user='';
mysql>flush privileges;
mysql>exit;
sudo /etc/init.d/mysql stop
sudo /etc/init.d/mysql start
sudo /usr/local/mysql5/bin/mysql -u root -p123456

mysql> INSTALL PLUGIN fthightman SONAME 'myhightman.so';
mysql> CREATE FUNCTION segment RETURNS STRING SONAME 'myhightman.so';

测试简单的 SEGMENT() 看看:
SET NAMES 'gbk';
SELECT SEGMENT('I am hightman,我是一个中国人') AS result;
SET NAMES 'utf8';
SELECT SEGMENT('I am hightman,鎴戞槸涓€涓?腑鍥戒汉') AS result;


测试:
create database fenci;
use fenci;
CREATE TABLE `test_utf8` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`title` varchar(200) DEFAULT NULL,
`body` mediumtext,
PRIMARY KEY (`id`),
FULLTEXT KEY `ft_utf8` (`title`,`body`) WITH PARSER fthightman
) ENGINE=MyISAM DEFAULT CHARSET=gbk;
INSERT INTO `test_utf8` VALUES (1, 'MySQL Tutorial', 'DBMS stands for DataBase ...');
INSERT INTO `test_utf8` VALUES (2, 'How To Use MySQL Efficiently', 'After you went through a ...');
INSERT INTO `test_utf8` VALUES (3, 'Optimising MySQL', 'In this tutorial we will show ...');
INSERT INTO `test_utf8` VALUES (4, '1001 MySQL Tricks', '1. Never run mysqld as root. 2. ...');
INSERT INTO `test_utf8` VALUES (5, 'MySQL vs. YourSQL', 'In the following database comparison ...');
INSERT INTO `test_utf8` VALUES (6, 'MySQL Security', 'When configured properly, MySQL ...');
INSERT INTO `test_utf8` VALUES (7, '中国测试', '这样可以吗');
INSERT INTO `test_utf8` VALUES (8, '疯狂测中国测试', '这样总应该可以吗');
INSERT INTO `test_utf8` VALUES (9, '中国语言测试', '这样又是行不行呢');
INSERT INTO `test_utf8` VALUES (10, '我爱china', 'china是我的祖国');
SELECT * FROM test_utf8 WHERE MATCH(title,body) AGAINST ('中国');
SELECT * FROM test_utf8 WHERE MATCH(title,body) AGAINST ('+中国 -疯狂' IN BOOLEAN MODE);
SELECT SEGMENT(title) FROM test_utf8;

备注:
如果执行:CREATE FUNCTION segment RETURNS STRING SONAME 'myhightman.so';
出现如下错误:
ERROR 1126 (HY000): Can't open shared library 'myhightman.so' (errno: 22 myhightman.so: cannot open shared object file: No such file or directory)

则如下解决:
sudo cp /usr/local/mysql5/lib/mysq/myhightman.so /usr/lib/.
sudo /etc/init.d/mysql restart
sudo bin/mysql -u root -p123456
CREATE FUNCTION segment RETURNS STRING SONAME 'myhightman.so';
即可解决!

附件是Samba的配置文件!
MySQL 5.1.11:http://www.hightman.cn/down/mysql-5.1.11-hi1.tgz
词典档下载:http://www.hightman.cn/down/wordlist-all.tgz

[ 本帖最后由 derekchen 于 2008-6-6 15:35 编辑 ]
修正了一些错误!

就是不知道怎么解决以下问题:
u2m@MyUbuntu:/$ sudo /etc/init.d/mysql restart
/etc/init.d/mysql: 94: source: not found
/etc/init.d/mysql: 94: source: not found
Shutting down MySQL
/etc/init.d/mysql: 349: log_success_msg: not found
/etc/init.d/mysql: 94: source: not found
Starting MySQL
/etc/init.d/mysql: 349: log_success_msg: not found

以上问题不影响mysql
Reference URL's