一 环境准备
1.1 创建用户、用户组
groupadd teledb
useradd teledb -g teledb
1.2 创建相关目录
mkdir -p /opt/teledb/data
1.3 安装boost
cd /opt/
tar xzf boost_1_59_0.tar.gz
cd boost_1_59_0
./bootstrap.sh
./b2 install
1.4 安装依赖rpm
cd /opt/
rpm -ivh cmake-2.8.12.2-2.el7.x86_64.rpm
rpm -ivh rh-varnish6-runtime-4.1-6.el7.x86_64.rpm
rpm -ivh rh-varnish6-jemalloc-5.0.1-3.el7.x86_64.rpm
rpm -ivh rh-varnish6-jemalloc-devel-5.0.1-3.el7.x86_64.rpm
rpm -ivh ncurses-base-5.9-14.20130511.el7_4.noarch.rpm
rpm -ivh ncurses-libs-5.9-14.20130511.el7_4.x86_64.rpm
rpm -ivh ncurses-5.9-14.20130511.el7_4.x86_64.rpm
rpm -ivh ncurses-devel-5.9-14.20130511.el7_4.x86_64.rpm
这些rpm还不太好下载,有需要的朋友可以私信问我要。
二 编译teledb
2.1 编译安装配置
# 注意空间要够用,需要10多G左右空间
cd /opt
unzip teledb-for-mysql-master.zip
cmake -DCMAKE_INSTALL_PREFIX=/home/teledb -DMYSQL_DATADIR=/home/teledb/data -DSYSCONFDIR=/home/teledb -DDOWNLOAD_BOOST=1 -DWITH_BOOST=/opt/boost_1_59_0 -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DMYSQL_UNIX_ADDR=/home/teledb/mysql.sock -DMYSQL_TCP_PORT=4406 -DENABLED_LOCAL_INFILE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci
#编译安装
make && make install
#配置文件my.cnf
[client]
port = 4406
socket = /home/teledb/mysql.sock
default-character-set = utf8mb4
[mysqld]
port = 4406
socket = /home/teledb/mysql.sock
basedir = /home/teledb
datadir = /home/teledb/data
pid-file = /home/teledb/teledb.pid
log_error = /home/teledb/mysql-error.log
user = mysql
default_storage_engine = InnoDB
max_connections = 1000
max_connect_errors = 6000
open_files_limit = 65535
table_open_cache = 128
max_allowed_packet = 64M
binlog_cache_size = 128M
max_heap_table_size = 128M
tmp_table_size = 128M
sort_buffer_size = 64M
join_buffer_size = 64M
innodb_file_per_table = 1
innodb_open_files = 500
innodb_buffer_pool_size = 1024M
innodb_log_buffer_size = 128M
innodb_log_file_size = 256M
#修改权限
chown -R teledb:teledb /home/teledb
2.2 初始化实例
cd /home/teledb/bin
./mysqld --initialize-insecure --user=teledb --basedir=/home/teledb --datadir=/home/teledb/data
备注:
--initialize进行初始化会在console里输出一个随机密码
--initialize-insecure进行初始化root密码为空
/home/teledb/mysql-error.log 密码:
2024-02-23T07:15:38.293263Z 1 [Note] A temporary password is generated for root@localhost: l/w/#vQDK0fY
三 配置服务
cp /home/teledb/support-files/mysql.server /etc/init.d/teledb
chmod +x /etc/init.d/teledb
关于修改vi /etc/init.d/teledb
的详细说明:
修改里面的basedir(在文件前部分指定一下)、datadir(在文件前部分指定一下)、
my.cnf为实际的路径
服务配置文件:
[Unit]
Description=TeleDb
After=network.target
[Service]
User=teledb
Group=teledb
ExecStart=/etc/init.d/teledb start
ExecStop=/etc/init.d/teledb stop
ExecReload=/etc/init.d/teledb reload
Type=forking
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
重新加载systemctl的配置文件,然后启动下看看效果:
sudo systemctl daemon-reload
systemctl start teledb
systemctl status teledb
四 说明
电信TELEDB是电信自研的分布式数据库。主要实现了传统的分布式分库分表的架构,实现了SQL路由转发,全局索引,只适用于SQL OLTP业务和极少的统计场景 。