吐血实践-TiDB离线安装

本文详述了在内网环境下,通过离线安装的方式部署TiDB集群的全过程,包括创建用户、安装依赖、配置SSH互信、初始化系统环境、部署TiDB软件以及启动和测试TiDB集群等步骤,旨在为没有网络条件的部署提供解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在内网离线安装TiDB,测试安装了很久,终于实践成功,整理成章,便后查看。

tidb离线安装
参考官网:https://pingcap.com/docs-cn/stable/how-to/deploy/orchestrated/offline-ansible/

1、准备工作
4台机器
1台中控机(若中控机可以联网则不需要另外的下载机)
192.168.1.66(TiDB、PD)
3台目标机器
10.10.77.100(tikv)
10.10.77.101(tikv)
10.10.77.107(tikv)
文件夹中的tidb-ansible是在下载机(可以连接外网的机器)运行过ansible-playbook local_prepare.yml的
2、依赖包
在中控机上安装系统依赖包,该离线包仅支持 CentOS 7 系统,包含 pip 及 sshpass
在官网的离线部署对应安装部分下载依赖包
ansible-system-rpms.el7.tar.gz
安装依赖包
tar -xzvf ansible-system-rpms.el7.tar.gz &&
cd ansible-system-rpms.el7 &&
chmod u+x install_ansible_system_rpms.sh &&
./install_ansible_system_rpms.sh
安装完成后,可通过 pip -V 验证 pip 是否安装成功
pip -V
在这里插入图片描述

3、创建用户
在中控机上创建 tidb 用户,并生成 ssh key
以 root 用户登录中控机,执行以下步骤:
创建 tidb 用户
useradd -m -d /home/tidb tidb
设置 tidb 用户密码,运行一下命令后,输入密码两次
passwd tidb
配置 tidb 用户 sudo 免密码,将 tidb ALL=(ALL) NOPASSWD: ALL 添加到文件末尾即可
visudo
添加如下内容
tidb ALL=(ALL) NOPASSWD: ALL

生成 SSH key
执行 su 命令,从 root 用户切换到 tidb 用户下。
su - tidb
创建 tidb 用户 SSH key,提示 Enter passphrase 时直接回车即可。执行成功后,SSH 私 钥文件为 /home/tidb/.ssh/id_rsa,SSH 公钥文件为 /home/tidb/.ssh/id_rsa.pub。
ssh-keygen -t rsa

4、离线安装 Ansible
在中控机器上离线安装 Ansible 及其依赖
建议使用 Ansible 2.4 至 2.7.11 版本,Ansible 及相关依赖版本记录在 tidb-ansible/requirements.txt 文件中。下面步骤以安装 Ansible 2.5 为例。
下载安装包
在官网的对应位置下载Ansible 2.5 离线安装包(可以联网的机器),然后上传至中控机。
离线安装
tar -xzvf ansible-2.5.0-pip.tar.gz &&
cd ansible-2.5.0-pip/ &&
chmod u+x install_ansible.sh &&
./install_ansible.sh
测试
ansible --version
在这里插入图片描述

卸载ansible
pip uninstall ansible

5、下载 TiDB Ansible 及 TiDB
在下载机上下载 TiDB Ansible 及 TiDB 安装包
git clone -b v3.0.2 https://github.com/pingcap/tidb-ansible.git
下载完成后,进入到执行以下命令:
cd tidb-ansible
ansible-playbook local_prepare.yml
下载了很多相关的包,tispark等。全程控制台输出的日志是绿色或黄色,红色便是有报错。最后全部下载完成后是这样的:
在这里插入图片描述

将执行完以上命令之后的 tidb-ansible 文件夹拷贝到中控机 /home/tidb 目录下,文件属主权限需是 tidb 用户。
scp -r tidb-ansible tidb@192.168.1.66:/home/tidb
(注意这里的用户要是tidb,不能是root否则在后面安装过程中会报各种错误)

6、SSH互信
以 tidb 用户登录中控机,然后执行以下步骤:
将你的部署目标机器 IP 添加到 hosts.ini 文件的 [servers] 区块下
cd /home/tidb/tidb-ansible &&
vi hosts.ini
在这里插入图片描述

在中控机上配置部署机器 SSH 互信及 sudo 规则
ansible-playbook -i hosts.ini create_users.yml -u root -k
该步骤将在部署目标机器上创建 tidb 用户,并配置 sudo 规则,配置中控机与部署目标机器之间的 SSH 互信。
手工设置链接如下:
https://pingcap.com/docs-cn/stable/how-to/deploy/orchestrated/ansible/#%E5%A6%82%E4%BD%95%E6%89%8B%E5%B7%A5%E9%85%8D%E7%BD%AE-ssh-%E4%BA%92%E4%BF%A1%E5%8F%8A-sudo-%E5%85%8D%E5%AF%86%E7%A0%81

7、NTP服务
在部署目标机器上安装 NTP 服务, 如果你的部署目标机器时间、时区设置一致,已开启 NTP 服务且在正常同步时间,此步骤可忽略。该步骤将在部署目标机器上使用系统自带软件源联网安装并启动 NTP 服务,服务使用安装包默认的 NTP server 列表,见配置文件 /etc/ntp.conf 中 server 参数,如果使用默认的 NTP server,你的机器需要连接外网。 为了让 NTP 尽快开始同步,启动 NTP 服务前,系统会 ntpdate hosts.ini 文件中的 ntp_server 一次,默认为 pool.ntp.org,也可替换为你的 NTP server。
以 tidb 用户登录中控

### TiDB 离线单机单节点部署方法 #### 准备工作 为了成功完成 TiDB离线单机单节点部署,需准备如下材料: - 对应版本的 TiDB Server 离线镜像包,该包内含 TiUP 离线组件[^1]。 - 下载 `TiDB-community-server` 和 `TiDB-community-toolkit` 软件包以确保拥有完整的安装文件集。 #### 安装环境配置工具 在目标机器上执行必要的前置操作来优化性能并设置运行环境。这包括但不限于通过命令 `tuned-adm profile balanced-tidb-optimal` 来调整系统参数以及安装 `numactl` 工具以便更好地控制内存访问策略[^2]。 #### 部署过程概述 ##### 解压资源包 将之前获取到的所有压缩包解压至指定目录下,通常建议创建专门的工作空间用于存放这些文件夹及其内容。 ```bash tar -zxvf tidb-community-server-v7.5.0-linux-amd64.tar.gz -C /path/to/your/workdir/ tar -zxvf tidb-community-toolkit-v7.5.0-linux-amd64.tar.gz -C /path/to/your/workdir/ ``` ##### 初始化集群拓扑结构定义 利用 TiUP 创建一个新的集群实例描述文档(即 topology 文件),此步骤对于后续自动化部署至关重要。考虑到这是针对单一物理主机的操作指南,则只需关注如何合理规划各服务进程间的端口分配等问题即可满足需求。 ```yaml global: user: "tidb" ssh_port: 22 deploy_dir: "/data/deploy" data_dir: "/data" server_configs: pd: config: {} tikv: config: {} tidb: config: {} pd_servers: - host: 127.0.0.1 tiflash_servers: [] tikv_servers: - host: 127.0.0.1 tidb_servers: - host: 127.0.0.1 ``` 请注意上述 YAML 片段中的 IP 地址应当指向本地回环接口地址 (`127.0.0.1`) 并且所有服务器角色均在同一台设备内部署。 ##### 执行实际部署动作 借助于 TiUP 提供的一系列子命令实现整个流程的高度简化——仅需一条指令就能启动全部所需的服务实例,并自动处理依赖关系管理等工作事项。 ```bash tiup cluster deploy test_tidb_cluster v7.5.0 /path/to/topology.yaml --user root -p ``` 此处假设所使用的集群名称为 `test_tidb_cluster`;同时指定了具体版本号(`v7.5.0`) 及先前编辑好的拓扑模板路径(`/path/to/topology.yaml`) 。另外还设定了默认管理员账户名为 `root` ,密码交互输入模式(-p)。 ##### 启动新建立起来的 TiDB 实例群组 一旦前期准备工作顺利完成之后就可以尝试让刚刚搭建完毕的新系统正式上线运作啦! ```bash tiup cluster start test_tidb_cluster ``` 最后一步就是验证一切正常与否了:可以通过连接客户端的方式来进行简单的读写测试从而确认各项功能是否均已就绪待命。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值