q目录
摘要:
编译stonedb:
环境:
仓库地址:
改动的代码:
安装第三方依赖:
基本依赖:
cmake:
marisa
rocksdb
boost_1_66_0
gcc 7.3.0
编译:
编译脚本:
编译结果:
启动stonedb:
一. 创建用户及相关目录:
二. 启动mysql服务:
三. 进入stonedb
摘要:
记录stonedb编译及运行, 以快速实现对逻辑的追踪。
编译stonedb:
环境:
仓库地址:
注意:
- 此仓库的代码当前存在一些未清除干净的代码, 如果出现错误直接采取注释掉对应代码的办法
- 存在第三方依赖,需要额外注意
改动的代码:
安装第三方依赖:
基本依赖:
yum install -y tree
yum install -y gcc
yum install -y gcc-c++
yum install -y libzstd-devel
yum install -y make
yum install -y ncurses
yum install -y ncurses-devel
yum install -y bison
yum install -y libaio
yum install -y perl
yum install -y perl-DBI
yum install -y perl-DBD-MySQL
yum install -y perl-Time-HiRes
yum install -y readline-devel
yum install -y numactl
yum install -y zlib
yum install -y zlib-devel
yum install -y curl-devel
yum install -y openssl
yum install -y openssl-devel
yum install -y redhat-lsb-core
yum install -y git
yum install -y autoconf
yum install -y automake
yum install -y libtool
yum install -y lrzsz
yum install -y lz4
yum install -y lz4-devel
yum install -y snappy
yum install -y snappy-devel
yum install -y bzip2
yum install -y bzip2-devel
yum install -y zstd
yum install -y pthon3
cmake:
wget https://cmake.org/files/v3.7/cmake-3.7.2.tar.gz
tar -zxvf cmake-3.7.2.tar.gz
cd cmake-3.7.2
./bootstrap && make && make install
/usr/local/bin/cmake --version
yum remove cmake -y
ln -s /usr/local/bin/cmake /usr/bin/
marisa
git clone https://github.com/s-yata/marisa-trie.git
cd marisa-trie
autoreconf -i
./configure --enable-native-code --prefix=/usr/local/stonedb-marisa
make && make install
rocksdb
wget https://github.com/facebook/rocksdb/archive/refs/tags/v6.12.6.tar.gz
tar -zxvf v6.12.6.tar.gz
cd rocksdb-6.12.6
make shared_lib
make install-shared INSTALL_PATH=/usr/local/stonedb-gcc-rocksdb
make static_lib
make install-static INSTALL_PATH=/usr/local/stonedb-gcc-rocksdb
boost_1_66_0
wget https://nchc.dl.sourceforge.net/project/boost/boost/1.66.0/boost_1_66_0.tar.gz
tar -xzvf boost_1_66_0.tar.gz
cd boost_1_66_0
./bootstrap.sh
./b2 install --prefix=/usr/local/stonedb-boost
ldconfig -v
gcc 7.3.0
yum install centos-release-scl scl-utils-build -y
yum install devtoolset-7-gcc.x86_64 devtoolset-7-gcc-c++.x86_64 devtoolset-7-gcc-gdb-plugin.x86_64 -y
切换到7.3.0版本
scl enable devtoolset-7 bash
[root@localhost stonedb]# scl enable devtoolset-7 bash
[root@localhost stonedb]#
[root@localhost stonedb]# g++ -v
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/opt/rh/devtoolset-7/root/usr/libexec/gcc/x86_64-redhat-linux/7/lto-wrapper
Target: x86_64-redhat-linux
Configured with: ../configure --enable-bootstrap --enable-languages=c,c++,fortran,lto --prefix=/opt/rh/devtoolset-7/root/usr --mandir=/opt/rh/devtoolset-7/root/usr/share/man --infodir=/opt/rh/devtoolset-7/root/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-shared --enable-threads=posix --enable-checking=release --enable-multilib --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-gcc-major-version-only --enable-plugin --with-linker-hash-style=gnu --enable-initfini-array --with-default-libstdcxx-abi=gcc4-compatible --with-isl=/builddir/build/BUILD/gcc-7.3.1-20180303/obj-x86_64-redhat-linux/isl-install --enable-libmpx --enable-gnu-indirect-function --with-tune=generic --with-arch_32=i686 --build=x86_64-redhat-linux
Thread model: posix
gcc version 7.3.1 20180303 (Red Hat 7.3.1-5) (GCC)
编译:
编译脚本:
cd scripts
./stonedb_build.sh
编译结果:
[root@localhost stonedb]# ll /stonedb56/install/
total 184
drwxr-xr-x. 2 mysql mysql 4096 Jul 4 07:19 bin
-rw-r--r--. 1 mysql mysql 17987 Jul 3 23:20 COPYING
drwxr-xr-x. 5 mysql mysql 164 Jul 4 07:26 data
drwxr-xr-x. 6 mysql mysql 266 Jul 4 07:19 docs
drwxr-xr-x. 3 mysql mysql 4096 Jul 4 07:19 include
-rw-r--r--. 1 mysql mysql 102986 Jul 3 23:20 INSTALL-BINARY
-rwxr-xr-x. 1 mysql mysql 261 Jul 3 23:20 install.sh
drwxr-xr-x. 3 mysql mysql 272 Jul 4 07:19 lib
drwxr-xr-x. 2 mysql mysql 59 Jul 4 07:23 log
drwxr-xr-x. 4 mysql mysql 30 Jul 4 07:19 man
-rw-r--r--. 1 mysql mysql 5544 Jul 3 23:20 my.cnf
-rwxr-xr-x. 1 mysql mysql 12516 Jul 3 23:20 mysql_server
drwxr-xr-x. 10 mysql mysql 4096 Jul 4 07:19 mysql-test
-rw-r--r--. 1 mysql mysql 2615 Jul 3 23:20 README
-rwxr-xr-x. 1 mysql mysql 759 Jul 3 23:20 reinstall.sh
drwxr-xr-x. 2 mysql mysql 57 Jul 4 07:19 scripts
drwxr-xr-x. 28 mysql mysql 4096 Jul 4 07:19 share
drwxr-xr-x. 4 mysql mysql 4096 Jul 4 07:19 sql-bench
-rw-r--r--. 1 mysql mysql 31 Jul 4 07:21 stonedb.cnf
drwxr-xr-x. 2 mysql mysql 136 Jul 4 07:19 support-files
drwxr-xr-x. 2 mysql mysql 24 Jul 4 07:26 tmp
启动stonedb:
一. 创建用户及相关目录:
groupadd mysql
useradd -g mysql mysql
mkdir -p /stonedb56/install/{log/,tmp/,binlog/,data/innodb} && chown -R mysql:mysql /stonedb56
二. 启动mysql服务:
注意相关文件和文件夹需提前创建并设置归属为mysql.
尤其注意stonedb.cnf文件需自行创建
/stonedb56/install/bin/mysqld --user=mysql --skip-grant-tables
初始化:
mysql> create database sys_stonedb;
mysql> create database mysql;
./mysql_install_db.sh --user=mysql --basedir=/stonedb56/install --datadir=/stonedb56/install/data
/stonedb56/install/bin/mysqld --user=mysql --skip-grant-tables
/stonedb56/install/bin/mysqld --user=mysql --skip-grant-tables
2022-07-08 16:46:33 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2022-07-08 16:46:33 0 [Note] /stonedb56/install/bin/mysqld (mysqld 5.6.24-StoneDB-debug) starting as process 20080 ...
2022-07-08 16:46:33 20080 [Note] InnoDB: Using atomics to ref count buffer pool pages
2022-07-08 16:46:33 7fa6761d6c80 InnoDB: !!!!!!!! UNIV_DEBUG switched on !!!!!!!!!
2022-07-08 16:46:33 7fa6761d6c80 InnoDB: !!!!!!!! UNIV_SYNC_DEBUG switched on !!!!!!!!!
2022-07-08 16:46:33 20080 [Note] InnoDB: The InnoDB memory heap is disabled
2022-07-08 16:46:33 20080 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
2022-07-08 16:46:33 20080 [Note] InnoDB: Memory barrier is not used
2022-07-08 16:46:33 20080 [Note] InnoDB: Compressed tables use zlib 1.2.3
2022-07-08 16:46:33 20080 [Note] InnoDB: Using CPU crc32 instructions
2022-07-08 16:46:33 20080 [Note] InnoDB: Initializing buffer pool, size = 128.0M
2022-07-08 16:46:33 20080 [Note] InnoDB: Completed initialization of buffer pool
2022-07-08 16:46:33 20080 [Note] InnoDB: Highest supported file format is Barracuda.
2022-07-08 16:46:34 20080 [Note] InnoDB: 128 rollback segment(s) are active.
2022-07-08 16:46:34 20080 [Note] InnoDB: Waiting for purge to start
2022-07-08 16:46:34 20080 [Note] InnoDB: 5.6.24 started; log sequence number 1626037
2022-07-08 16:46:34 20080 [Note] Server hostname (bind-address): '*'; port: 3306
2022-07-08 16:46:34 20080 [Note] IPv6 is available.
2022-07-08 16:46:34 20080 [Note] - '::' resolves to '::';
2022-07-08 16:46:34 20080 [Note] Server socket created on IP: '::'.
2022-07-08 16:46:34 20080 [Note] /stonedb56/install/bin/mysqld: ready for connections.
Version: '5.6.24-StoneDB-debug' socket: '/stonedb56/install/tmp/mysql.sock' port: 3306 build-
三. 进入stonedb
/stonedb56/install/bin/mysql -uroot -p -S /stonedb56/install/tmp/mysql.sock
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| cache |
| innodb |
| mysql |
| performance_schema |
| stonedb_data |
| sys_stonedb |
| test |
+--------------------+
8 rows in set (0.01 sec)