进入boost源码目录:
cd /home/zn/src/boost_1_42_0
执行:
./bootstrap.sh --prefix='/opt/zn/opt/boost_1_42_0' ./bjam install
编辑用户zn的bash_profile文件:
vim ~/.bash_profile
加入如下几行:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/zn/opt/boost_1_42_0/lib export BOOST_ROOT=/opt/zn/opt/boost_1_42_0/
使修改生效:
source ~/.bash_profile
执行如下命令:
sudo /sbin/ldconfig -v
这一步很重要,否则下面的Infobright的安装过程中和启动mysqld-ib会提示找不到很多共享库文件(.so文件)。
进入ib源码目录:
$ cd /home/zn/src/infobright-4.0.7
注:如果是要编译 ib3.3.1 的话,则需要在当前目录 infobright-3.3.1-x86_64src 下先执行如下语句(因为 ib3.3.1源码目录下缺少下面这两个文件):
cp /usr/share/libtool/config/config.sub src cp /usr/share/libtool/config/config.guess src
而后再执行下面的命令。或者可以参考 ib4.0.7 源码目录下使用的软链接方式亦可。
如果是 ib4.0.7 的话,则可无视上面两条命令,无需拷贝文件,直接执行下面的命令即可。
执行(release版,将debug替换为release即可):
$ export BOOST_ROOT=/opt/zn/opt/boost_1_42_0/; make -j32 EDITION=community debug PREFIX='/opt/zn/opt/infobright' $ export BOOST_ROOT=/opt/zn/opt/boost_1_42_0/; make -j32 EDITION=community install-debug PREFIX='/opt/zn/opt/infobright'
完成之后需要把配置文件(注意各个版本 IB 的原始配置文件的路径可能不同,需用 find 自行查找,而且注意配置文件名字是 my-ib.cnf,而不是 my.cnf)拷贝到相应路径下,如果没有etc目录则需要手动创建:
$ mkdir /opt/zn/opt/infobright/etc $ cp ~/src/infobright-4.0.7/src/build/pkgmt/my-ib.cnf /opt/zn/opt/infobright/etc
修改配置文件:
basedir = /opt/zn/opt/infobright datadir = /opt/zn/opt/infobright/var log-error = /opt/zn/opt/infobright/var/bh.err
创建成功后数据库就可以正常使用了。
$ /opt/zn/opt/infobright/bin/mysql_install_db
$ LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/zn/opt/boost_1_42_0/lib/; /opt/zn/opt/infobright/libexec/mysqld --gdb
注:如果在启动 mysqld 时报错:
172 160226 14:51:58 [ERROR] Plugin 'BRIGHTHOUSE' init function returned error. 173 160226 14:51:58 [ERROR] Plugin 'BRIGHTHOUSE' registration as a STORAGE ENGINE failed. 174 160226 14:51:58 [ERROR] Unknown/unsupported table type: brighthouse 175 160226 14:51:58 [ERROR] Aborting
则可能是由于没有 install db 造成的,可以清除 var tmp 目录后重新执行以下 install db 操作。
./mysqld: Table 'mysql.plugin' doesn't exist
[ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it. [ERROR] Fatal error: wrong format of /opt/zn/opt/infobright/var/ib_data_version file. [ERROR] Plugin 'BRIGHTHOUSE' init function returned error. [ERROR] Plugin 'BRIGHTHOUSE' registration as a STORAGE ENGINE failed. [ERROR] Unknown/unsupported table type: brighthouse [ERROR] Aborting
再次install db后,myslqd启动成功:
$ /opt/zn/opt/infobright/bin/mysql_install_db $ LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/zn/opt/boost_1_42_0/lib/; /opt/zn/opt/infobright/libexec/mysqld --gdb
IB不支持DML语句,需要从文件加载数据:
$ cat ~/tmp/t1.data 1 2
$ /opt/zn/opt/infobright/bin/mysql -uroot mysql> CREATE DATABASE a; mysql> USE a; mysql> CREATE TABLE t1 (i INT); mysql> LOAD DATA INFILE '/home/zn/tmp/t1.data' INTO TABLE t1;
# client和mysqld的端口,socket路径 port = 5029 socket = /tmp/mysql-ib.sock \# basedir和datadir路径 basedir = /opt/zn/opt/infobright datadir = /opt/zn/opt/infobright/var log-error = /opt/zn/opt/infobright/var/bh.err \# Log文件路径 log-error = /opt/zn/opt/infobright/var/bh.err \# Log所有查询SQL,存储文件为general_log_file。 general_log=1 general_log_file=/opt/zn/opt/infobright/var/general_query.log \# Log所有查询满的查询,存储文件为general_log_file。 slow_query_log=1 slow_query_log_file=/opt/zn/opt/infobright/var/slow_query.log \# 查询缓存大小(缺省5M) query_cache_size = 0 \# 设置SQL语句大小是否敏感。0(缺省):敏感,1:不敏感。 lower_case_table_names = 1
# CacheFolder目录 CacheFolder = /opt/zn/opt/infobright/cache \# Log Control和Internal trace,可以用于查看IB执行计划,及执行过程信息。输出文件由log-error配置。 ControlMessages = 5 InternalMessages = 1