现在的位置: 首页产品技术>正文
重新编译/构建Xampp中的MYSQL并支持SPHINXSE
2009年05月16日 产品技术 评论数 3

为了配合亿枝客服务器系统转到Linux上,将sphinxSE编译到xampp的MYSQL里的测试工作,以下是测试成功全过程记录。

软件准备

xampp1.7.1 (mysql-5.1.33)

Development package xampp1.7.1

mysql-5.1.33源码

sphinx-0.9.9-rc1

yum install openssl

xampp及开发套件安装,并取出mysql编译/构建脚本

mkdir /opt/software

 

cd /opt/software

 

$ wget 'http://www.apachefriends.org/download.php?xampp-linux-1.7.1.tar.gz'
$ wget 'http://www.apachefriends.org/download.php?xampp-linux-devel-1.7.1.tar.gz'

 

$ tar xzf xampp-linux-1.7.1.tar.gz -C /opt
$ tar xzf xampp-linux-devel-1.7.1.tar.gz -C /opt

 

这步完成后,我们就会在/opt/lampp/share/lampp/configures.tar.gz

 

找到xampp的重新编译/构建的全部脚本。

 

cd /opt/lampp/share/lampp/

 

mkdir configrures

 

tar xzfv /opt/lampp/share/lampp/configures.tar.gz –C /configures

 

这步完成后,我们就会发现/opt/lampp/share/lampp/configures/mysql目录下,

 

有一个configure-oswald文件,

 

这就是重新编译与构建mysql的脚本.

 

 

下载并解压mysql5.1.33源码

cd /opt/software

wget http://dev.mysql.com/get/Downloads/MySQL-5.1/mysql-5.1.33.tar.gz/from/ftp://mirror.csclub.uwaterloo.ca/mysql/

   tar -zxvf mysql-5.1.33.tar.gz  -C /opt

  cd /opt/mysql-5.1.33

 

sphinx下载安装

cd /opt/software

wget http://www.sphinxsearch.com/downloads/sphinx-0.9.9-rc1.tar.gz
tar zxvf sphinx-0.9.9-rc1.tar.gz  -C  /opt
cd /opt/sphinx-0.9.9-rc1
cp -R /opt/sphinx-0.9.9-rc1/mysqlse /opt/mysql-5.1.33/storage/sphinx

cd /opt/mysql-5.1.33

sh BUILD/autorun.sh

 

开始编译与构建XAMPP中的MYSQL

重新开一个窗口

vi /opt/lampp/share/lampp/configures/mysql/configure-oswald

就会看到以下脚本

手动一条一条执行以下命令,注意执行之前关闭lampp。

perl -pi -e 's/"\/etc\/"/"\/opt\/lampp\/etc\/"/g' mysys/default.c
perl -pi -e 's/"\/etc\/mysql\/"/"\/etc\/xampp\/"/g' mysys/default.c

perl -pi -e "s/DBUG_PRINT/\/\/DBUG_PRINT/g" mysys/my_sync.c
perl -pi -e "s/DBUG_ENTER/\/\/DBUG_ENTER/g" mysys/my_sync.c

env LD_RUN_PATH=/opt/lampp/lib LD_LIBRARY_PATH="/opt/lampp/lib" CFLAGS="-O3 -mpentiumpro -I/opt/lampp/include -L/opt/lampp/lib -Wl,--rpath -Wl,/opt/lampp/lib -felide-constructors -fno-exceptions -fno-rtti" CXX="gcc" CXXFLAGS="-O3 -mpentiumpro -I/opt/lampp/include -L/opt/lampp/lib -Wl,--rpath -Wl,/opt/lampp/lib -felide-constructors -fno-exceptions -fno-rtti"

./configure --prefix=/opt/lampp --enable-assembler --enable-local-infile --with-mysqld-user=nobody --with-unix-socket-path=/opt/lampp/var/mysql/mysql.sock --with-extra-charsets=complex --libexecdir=/opt/lampp/sbin --sysconfdir=/opt/lampp/etc --datadir=/opt/lampp/share --localstatedir=/opt/lampp/var/mysql --infodir=/opt/lampp/info --includedir=/opt/lampp/include --mandir=/opt/lampp/man --with-ssl=/opt/lampp  --enable-thread-safe-client  --with-plugins=max-no-ndb  --with-plugins=sphinx

make

执行到这里可能有错,然后执行make clean,去了--with-ssl=/opt/lampp  ,重新执行一篇。

make install

mv /opt/lampp/sql-bench /opt/lampp/share/mysql/sql-bench

rm -rf /opt/lampp/share/mysql/sql-bench

 

检查是否安装好

/opt/lampp/lampp start

这里如果出现XAMPP: Couldn't start MySQL! 那么就去查看一下mysql错误日志,

错误日志位置在my.cnf里配置为log-error=/opt/lampp/logs/mysql_log

根据日志提示的问题,再去google上寻找解决答案,基本上都能解决。

/opt/lampp/lampp/bin/mysql –uroot

show engines;

我遇到的几个启动不成功的原因

1、/opt/lampp/sbin/mysqld: unknown variable 'innodb_data_home_dir=/opt/lampp/var/mysql/'

解决办法:

vi /opt/lampp/etc/my.cnf

注释以下所有

#skip-innodb
innodb_data_home_dir = /opt/lampp/var/mysql/
innodb_data_file_path = ibdata1:10M:autoextend
innodb_log_group_home_dir = /opt/lampp/var/mysql/
# You can set .._buffer_pool_size up to 50 - 80 %
# of RAM but beware of setting memory usage too high
innodb_buffer_pool_size = 16M
innodb_additional_mem_pool_size = 2M
# Set .._log_file_size to 25 % of buffer pool size
innodb_log_file_size = 5M
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 50

然后启动MYSQL

/opt/lampp/lampp startmysql

/opt/lampp/bin/mysql –uroot

mysql>INSTALL PLUGIN innodb  SONAME 'ha_innodb.so'
mysql> show plugin;

+------------+--------+----------------+--------------+---------+
| Name       | Status | Type           | Library      | License |
+------------+--------+----------------+--------------+---------+
| binlog     | ACTIVE | STORAGE ENGINE | NULL         | GPL     |
| CSV        | ACTIVE | STORAGE ENGINE | NULL         | GPL     |
| MEMORY     | ACTIVE | STORAGE ENGINE | NULL         | GPL     |
| MyISAM     | ACTIVE | STORAGE ENGINE | NULL         | GPL     |
| MRG_MYISAM | ACTIVE | STORAGE ENGINE | NULL         | GPL     |
| SPHINX     | ACTIVE | STORAGE ENGINE | NULL         | GPL     |
| PBXT       | ACTIVE | STORAGE ENGINE | libpbxt.so   | GPL     |
| InnoDB     | ACTIVE | STORAGE ENGINE | ha_innodb.so | GPL     |
+------------+--------+----------------+--------------+---------+

这时再把my.cnf里注释取了,再重新启动。

参考资料

http://www.ibm.com/developerworks/cn/opensource/os-php-fastapps3/

http://www.apachefriends.org/zh_cn/xampp-linux.html

原创文章,转载请注明: 转载自读思客

本文链接地址: 重新编译/构建Xampp中的MYSQL并支持SPHINXSE

目前有 3 条留言 其中:访客:1 条, 博主:0 条 引用: 2

  1. arloe : 2009年06月04日23:45:00  1楼

    如果你碰到其他类似提示:
    cannot restore segment prot after reloc: Permission denied
    哪应该是SELinux的问题,可以考虑把它关闭。
    ————————————————————————————-
    郁闷的是.我把SELinux关闭后还是不行.于是到google上search.发现这个很有用.
    在你保证SElinux 被disable后.还执行下
    chcon -t texrel_shlib_t
    如: chcon -t texrel_shlib_t /路径/路径/名字.so (这个文件视具体执行文件.)

    以上两步.已经解决了很多server的问题了.

给我留言

留言无头像?


×
腾讯微博