外观
TDSQL 安装步骤
环境准备
硬件要求
服务器配置
- CPU:建议8核及以上,生产环境推荐16核或更高
- 内存:建议16GB及以上,生产环境推荐32GB或更高
- 磁盘:
- 系统盘:至少100GB SSD
- 数据盘:根据业务需求,建议至少500GB SSD
- 日志盘:建议独立磁盘,至少200GB SSD
- 网络:千兆网卡,生产环境推荐万兆网卡
存储要求
- 支持SSD、NVMe等高性能存储设备
- 支持本地存储或分布式存储
- 建议使用RAID 10配置,提高数据可靠性和性能
软件要求
操作系统
- CentOS 7.6及以上
- Red Hat Enterprise Linux 7.6及以上
- Ubuntu 18.04及以上
- SUSE Linux Enterprise Server 12及以上
依赖软件
- MySQL 客户端工具(用于测试连接)
- Python 3.6及以上(用于运行安装脚本)
- openssl 1.0.2及以上
- libaio 0.3.109及以上
- numactl 2.0.9及以上
网络要求
网络配置
- 静态IP地址配置
- 关闭防火墙或开放必要端口(3306、3307、2888、3888等)
- 配置DNS解析
- 确保服务器之间网络互通
端口规划
| 端口 | 用途 |
|---|---|
| 3306 | 主库对外服务端口 |
| 3307 | 从库对外服务端口 |
| 2888 | 集群内部通信端口 |
| 3888 | 集群选举端口 |
| 8080 | 监控和管理端口 |
安装前检查
系统检查
操作系统版本检查
bash
cat /etc/redhat-release # CentOS/RHEL
lsb_release -a # Ubuntu
cat /etc/os-release # 通用方式硬件资源检查
bash
# 检查CPU
lscpu
cat /proc/cpuinfo | grep "model name" | head -1
# 检查内存
echo "内存大小:$(free -h | grep Mem | awk '{print $2}')"
# 检查磁盘
df -h
lsblk网络检查
bash
# 检查IP地址
ip addr
# 检查网络连通性
ping -c 3 www.baidu.com
# 检查端口占用
netstat -tuln # 或 ss -tuln依赖检查
检查依赖软件
bash
# 检查Python版本
python3 --version
# 检查openssl版本
openssl version
# 检查libaio
rpm -qa | grep libaio # CentOS/RHEL
dpkg -l | grep libaio # Ubuntu
# 检查numactl
numactl --version安装缺失依赖
bash
# CentOS/RHEL
yum install -y python3 openssl libaio numactl
# Ubuntu
dpkg --add-architecture i386
apt-get update
apt-get install -y python3 openssl libaio:i386 numactl
# SUSE
zypper install -y python3 openssl libaio numactl系统优化
关闭SELinux
bash
# 临时关闭
setenforce 0
# 永久关闭
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config关闭防火墙
bash
# CentOS/RHEL 7
systemctl stop firewalld
systemctl disable firewalld
# CentOS/RHEL 6
service iptables stop
chkconfig iptables off
# Ubuntu
ufw disable优化内核参数
编辑 /etc/sysctl.conf 文件,添加以下内容:
bash
# 网络优化
net.core.somaxconn = 65535
net.ipv4.tcp_max_syn_backlog = 65535
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_keepalive_time = 600
net.ipv4.tcp_keepalive_probes = 3
net.ipv4.tcp_keepalive_intvl = 15
# 文件系统优化
fs.file-max = 655350
# 内存管理
vm.swappiness = 0
vm.dirty_ratio = 10
vm.dirty_background_ratio = 5执行 sysctl -p 使配置生效。
优化文件描述符
编辑 /etc/security/limits.conf 文件,添加以下内容:
bash
* soft nofile 65535
* hard nofile 65535
* soft nproc 65535
* hard nproc 65535安装过程
下载安装包
获取安装包
- 从TDSQL官方网站下载最新安装包
- 或通过云平台控制台获取
- 或通过命令行工具下载
bash
# 示例:使用wget下载
wget https://tdsql-official-website/tdsql-installer-v1.0.0.tar.gz验证安装包完整性
bash
# 检查MD5值
md5sum tdsql-installer-v1.0.0.tar.gz
# 检查SHA256值
sha256sum tdsql-installer-v1.0.0.tar.gz解压安装包
bash
# 解压到指定目录
tar -zxvf tdsql-installer-v1.0.0.tar.gz -C /opt/tdsql
# 进入安装目录
cd /opt/tdsql/tdsql-installer-v1.0.0安装配置
编辑安装配置文件
bash
# 复制示例配置文件
cp install.conf.example install.conf
# 编辑配置文件
vi install.conf配置文件主要参数
bash
# 数据库基本配置
TDSQL_VERSION=v1.0.0
DB_NAME=tdsql
DB_PORT=3306
DB_USER=root
DB_PASSWORD=YourStrongPassword123!
# 集群配置
CLUSTER_NAME=tdsql-cluster
NODE_ROLE=master # master或slave
MASTER_IP=192.168.1.100
SLAVE_IP=192.168.1.101,192.168.1.102
# 存储配置
DATA_DIR=/data/tdsql/data
LOG_DIR=/data/tdsql/log
BINLOG_DIR=/data/tdsql/binlog
TMP_DIR=/data/tdsql/tmp
# 内存配置
BUFFER_POOL_SIZE=16G # 建议为总内存的50%-70%
LOG_BUFFER_SIZE=256M
# 网络配置
LISTEN_ADDRESS=0.0.0.0
PORT=3306执行安装脚本
安装前验证
bash
# 执行预检查脚本
./precheck.sh开始安装
bash
# 执行安装脚本
./install.sh安装过程监控
- 安装过程中会显示详细的日志信息
- 安装时间取决于服务器配置和网络环境
- 安装过程中请勿中断执行
安装完成
安装成功提示
安装完成后,会显示类似以下信息:
==============================================
TDSQL 安装成功!
==============================================
安装版本:TDSQL v1.0.0
安装路径:/opt/tdsql
数据目录:/data/tdsql/data
日志目录:/data/tdsql/log
服务端口:3306
管理地址:http://192.168.1.100:8080
用户名:root
密码:YourStrongPassword123!
==============================================安装日志
安装日志默认保存在 /opt/tdsql/log/install.log,可用于排查安装问题。
配置初始化
启动服务
启动TDSQL服务
bash
# 启动服务
systemctl start tdsql
# 设置开机自启
systemctl enable tdsql
# 检查服务状态
systemctl status tdsql验证服务运行
bash
# 检查进程
ps -ef | grep tdsql
# 检查端口
netstat -tuln | grep 3306
ss -tuln | grep 3306初始化配置
登录数据库
bash
# 使用MySQL客户端登录
mysql -h localhost -P 3306 -u root -p
# 输入安装时设置的密码执行初始化脚本
bash
# 执行初始化SQL脚本
source /opt/tdsql/scripts/init.sql初始化主要内容
- 创建系统数据库和表
- 初始化系统用户和权限
- 配置默认参数
- 创建监控用户
- 配置备份策略
参数调整
编辑配置文件
bash
# 编辑主配置文件
vi /etc/tdsql/tdsql.conf关键参数调整
bash
# 性能参数
max_connections = 10000
innodb_buffer_pool_size = 16G
innodb_log_file_size = 1G
innodb_flush_log_at_trx_commit = 2
sync_binlog = 100
# 安全参数
skip_name_resolve = 1
max_connect_errors = 10000
# 日志参数
slow_query_log = 1
long_query_time = 1
log_queries_not_using_indexes = 1重启服务使配置生效
bash
systemctl restart tdsql验证测试
基本功能验证
连接测试
bash
# 本地连接测试
mysql -h localhost -P 3306 -u root -p -e "SELECT VERSION();"
# 远程连接测试(从另一台服务器)
mysql -h 192.168.1.100 -P 3306 -u root -p -e "SELECT VERSION();"数据库操作测试
sql
-- 创建测试数据库
CREATE DATABASE test_db;
-- 使用测试数据库
USE test_db;
-- 创建测试表
CREATE TABLE test_table (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(50) NOT NULL,
value INT,
create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
-- 插入测试数据
INSERT INTO test_table (name, value) VALUES ('test1', 100), ('test2', 200);
-- 查询测试数据
SELECT * FROM test_table;
-- 更新测试数据
UPDATE test_table SET value = 300 WHERE name = 'test1';
-- 删除测试数据
DELETE FROM test_table WHERE name = 'test2';
-- 再次查询
SELECT * FROM test_table;性能测试
简单性能测试
bash
# 使用sysbench进行性能测试
# 安装sysbench
yum install -y sysbench # CentOS/RHEL
apt-get install -y sysbench # Ubuntu
# 准备测试数据
sysbench oltp_read_write --mysql-host=localhost --mysql-port=3306 --mysql-user=root --mysql-password=YourStrongPassword123! --mysql-db=test_db --table-size=1000000 --tables=10 prepare
# 运行测试
sysbench oltp_read_write --mysql-host=localhost --mysql-port=3306 --mysql-user=root --mysql-password=YourStrongPassword123! --mysql-db=test_db --table-size=1000000 --tables=10 --threads=16 --time=60 run
# 清理测试数据
sysbench oltp_read_write --mysql-host=localhost --mysql-port=3306 --mysql-user=root --mysql-password=YourStrongPassword123! --mysql-db=test_db --table-size=1000000 --tables=10 cleanup高可用性测试
主从复制测试(主从架构)
bash
# 在主库上查看主从状态
SHOW MASTER STATUS;
# 在从库上查看复制状态
SHOW SLAVE STATUS\G
# 验证复制延迟
SHOW GLOBAL STATUS LIKE 'Seconds_Behind_Master';故障切换测试(主从架构)
bash
# 手动触发主从切换
systemctl stop tdsql # 停止主库服务
# 检查从库是否自动提升为主库
# 在从库上查看状态
SHOW MASTER STATUS;安装后的配置
监控配置
开启监控服务
bash
# 启动监控服务
systemctl start tdsql-monitor
systemctl enable tdsql-monitor
# 访问监控界面
# http://192.168.1.100:8080配置监控告警
- 登录监控界面
- 进入"告警配置"页面
- 设置告警规则(CPU、内存、磁盘、连接数等)
- 配置告警通知方式(邮件、短信、微信等)
备份配置
配置自动备份
bash
# 编辑备份配置文件
vi /etc/tdsql/backup.conf
# 主要备份配置
BACKUP_DIR=/data/tdsql/backup
BACKUP_TYPE=full # full, incremental, differential
BACKUP_TIME=02:00 # 每天凌晨2点执行备份
BACKUP_RETENTION=7 # 保留7天备份
COMPRESSION=1 # 启用压缩
ENCRYPTION=1 # 启用加密启动备份服务
bash
systemctl start tdsql-backup
systemctl enable tdsql-backup安全配置
创建业务用户
sql
-- 创建业务用户
CREATE USER 'app_user'@'%' IDENTIFIED BY 'AppUserPassword123!';
-- 授予权限
GRANT SELECT, INSERT, UPDATE, DELETE ON app_db.* TO 'app_user'@'%';
-- 刷新权限
FLUSH PRIVILEGES;配置IP白名单
sql
-- 限制用户只能从特定IP访问
CREATE USER 'restricted_user'@'192.168.1.%' IDENTIFIED BY 'RestrictedPassword123!';
GRANT ALL PRIVILEGES ON *.* TO 'restricted_user'@'192.168.1.%';
FLUSH PRIVILEGES;常见安装问题与解决方案
问题1:依赖缺失
错误信息
Error: Missing dependency: libaio解决方案
bash
# 安装缺失的依赖
# CentOS/RHEL
yum install -y libaio
# Ubuntu
apt-get install -y libaio
# SUSE
zypper install -y libaio问题2:端口被占用
错误信息
Error: Port 3306 is already in use解决方案
bash
# 查找占用端口的进程
lsof -i :3306
netstat -tuln | grep 3306
# 停止占用端口的进程
kill -9 <PID>
# 或修改TDSQL配置文件,使用其他端口问题3:磁盘空间不足
错误信息
Error: Insufficient disk space on /data/tdsql解决方案
bash
# 检查磁盘空间
df -h
# 清理不必要的文件
rm -rf /tmp/*
# 或扩展磁盘空间
# 或修改TDSQL配置,使用其他磁盘路径问题4:内存不足
错误信息
Error: Insufficient memory to start TDSQL解决方案
bash
# 检查内存使用情况
free -h
# 关闭不必要的服务
systemctl stop <service-name>
# 或调整TDSQL内存配置,减少buffer_pool_size问题5:权限不足
错误信息
Error: Permission denied when writing to /data/tdsql解决方案
bash
# 检查目录权限
ls -la /data/tdsql
# 设置正确的权限
chown -R tdsql:tdsql /data/tdsql
chmod -R 755 /data/tdsql安装完成后的建议
文档记录
- 记录安装配置信息
- 保存安装日志
- 记录初始密码和关键参数
- 编写部署文档
安全加固
- 更改默认密码
- 限制远程访问
- 开启SSL/TLS加密
- 配置防火墙规则
- 定期更新安全补丁
性能优化
- 根据业务需求调整参数
- 优化存储配置
- 配置合理的缓存策略
- 定期进行性能测试
监控与告警
- 配置全面的监控指标
- 设置合理的告警阈值
- 定期检查监控数据
- 及时处理告警信息
备份与恢复
- 测试备份恢复流程
- 定期验证备份有效性
- 制定灾难恢复计划
- 定期进行灾难恢复演练
常见问题(FAQ)
Q1: TDSQL支持哪些操作系统?
A1: TDSQL支持主流的Linux操作系统,包括:
- CentOS 7.6及以上
- Red Hat Enterprise Linux 7.6及以上
- Ubuntu 18.04及以上
- SUSE Linux Enterprise Server 12及以上
Q2: 如何选择合适的硬件配置?
A2: 硬件配置应根据业务需求选择:
- 小型应用:8核16GB内存,500GB SSD
- 中型应用:16核32GB内存,1TB SSD
- 大型应用:32核64GB内存,2TB SSD或更高
- 核心业务:建议采用分布式架构,多节点部署
Q3: 安装过程中遇到问题如何排查?
A3: 排查安装问题的方法:
- 查看安装日志:
/opt/tdsql/log/install.log - 检查系统日志:
/var/log/messages - 执行预检查脚本:
./precheck.sh - 检查依赖是否完整
- 检查端口和权限设置
Q4: 如何升级TDSQL版本?
A4: 升级TDSQL版本的步骤:
- 备份数据和配置
- 下载新版本安装包
- 执行升级脚本:
./upgrade.sh - 验证升级结果
- 测试业务功能
Q5: 如何卸载TDSQL?
A5: 卸载TDSQL的步骤:
- 停止服务:
systemctl stop tdsql - 执行卸载脚本:
./uninstall.sh - 删除数据目录:
rm -rf /data/tdsql - 删除安装目录:
rm -rf /opt/tdsql - 删除服务文件:
rm -f /etc/systemd/system/tdsql.service
Q6: 如何配置主从复制?
A6: 配置主从复制的步骤:
- 先安装主库
- 在主库上创建复制用户
- 备份主库数据
- 安装从库
- 配置从库连接主库
- 启动复制进程
- 验证复制状态
Q7: 如何配置高可用集群?
A7: 配置高可用集群的步骤:
- 准备3个或更多节点
- 安装主库和多个从库
- 配置主从复制
- 配置集群管理工具
- 配置自动故障切换
- 测试故障切换功能
Q8: 如何监控TDSQL的运行状态?
A8: 监控TDSQL运行状态的方法:
- 使用TDSQL内置监控界面(http://IP:8080)
- 集成第三方监控工具(Prometheus + Grafana)
- 使用MySQL内置命令(SHOW STATUS, SHOW PROCESSLIST等)
- 配置监控告警,及时发现问题
Q9: 如何优化TDSQL的性能?
A9: 优化TDSQL性能的方法:
- 调整内存配置(innodb_buffer_pool_size)
- 优化存储配置(使用SSD,独立日志盘)
- 调整并发参数(max_connections)
- 优化SQL语句和索引
- 配置合理的缓存策略
- 考虑读写分离和分库分表
Q10: 如何保障TDSQL的数据安全?
A10: 保障TDSQL数据安全的措施:
- 定期备份数据
- 配置主从复制和高可用
- 开启SSL/TLS加密
- 限制用户访问权限
- 配置IP白名单
- 定期更新密码
- 开启审计日志
- 定期进行安全扫描
