【从零开始学TiDB】KylinOS安装TiDB-8.5.3(单机伪分布式)

说明:请使用root用户进行操作。

  • 集群拓扑如下
实例 个数 IP 配置
TiKV 3 192.168.56.201 使用递增的端口号以避免冲突
TiDB 1 192.168.56.201 使用默认端口和其他配置
PD 1 192.168.56.201 使用默认端口和其他配置
TiFlash 1 192.168.56.201 使用默认端口和其他配置
Monitor 1 192.168.56.201 使用默认端口和其他配置

1. 安装介质

操作用户:root/Kylin123123

介质:https://tiup-mirrors.pingcap.com/install.sh

2. 虚拟机安装

# 查看box列表
vagrant box list

cd /cygdrive/e/learn_resource/tools/vagrant/box/KylinOS/
vagrant box add kylin10sp2base Vagrant-Kylin-10-SP2.VirtualBox-base.box

# 删除box
vagrant box remove kylin10sp2base

2.1. 编写VagrantFile

cd /cygdrive/d/boxes/
mkdir -p newsql/tidb853 && cd newsql/tidb853
vi Vagrantfile

内容如下:

# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.require_version ">= 1.6.0"

boxes = [
    {
        :name => "tidb853",
        :eth1 => "192.168.56.201",
        :mem => "12288",
        :cpu => "6"
    }
]

Vagrant.configure(2) do |config|
  config.vm.box = "kylin10sp2base"
  # 第一次安装时请注释以下三行配置,配置ssh密码验证(sshd_config)后再打开
  config.ssh.username = 'root'
  config.ssh.password = 'Kylin123123'
  config.ssh.insert_key = true
  # ssh config end
  
  config.vm.box_check_update = false
  if Vagrant.has_plugin?("vagrant-vbguest")
    config.vbguest.auto_update = false
  end
  # 禁用系统默认的共享目录
  config.vm.synced_folder '.', '/vagrant', disabled: true

  boxes.each do |opts|
    config.vm.define opts[:name] do |config|
      config.vm.hostname = opts[:name]
      config.vm.provider "virtualbox" do |v|
        v.customize ["modifyvm", :id, "--name", opts[:name]]
        v.customize ["modifyvm", :id, "--memory", opts[:mem]]
        v.customize ["modifyvm", :id, "--cpus", opts[:cpu]]
      end
      config.vm.network :private_network, ip: opts[:eth1]
    end
  end
end

2.2. 虚拟机基本操作

cd /cygdrive/d/boxes/newsql/tidb853
# 虚拟机操作
vagrant up # 安装或启动虚拟机
vagrant ssh # 实际使用较少,一般只有在ssh客户端连接不上时才使用,推荐使用MobaXterm、Xshell等ssh客户端工具
vagrant status # 查看虚拟机状态
vagrant reload # 重启虚拟机
vagrant halt # 关闭虚拟机
vagrant destroy # 销毁虚拟机

2.3. 主机列表配置(选)

# 设置主机名(集群所有节点)
sudo vi /etc/hosts

配置如下:

127.0.0.1 localhost
# 注意:务必注释# 127.0.1.1 ${HOST_NAME}
# 本机内网IP建议配置于第一行(多个域名情况下)

192.168.56.201 tidb853

2.4. 导出虚拟机

# 退出宿主机
vagrant halt

# 查看虚拟机名称(VagrantFile中box的名称:config.vm.hostname)
vboxmanage list vms

cd /cygdrive/e/learn_resource/tools/vagrant/box/KylinOS/
# 注意:--base后面指定的是虚拟机名称而不是box名称
vagrant package --base tidb853 --output Vagrant-Kylin-10-SP2.VirtualBox-tidb8.5.3.box

3. 安装TiUP

curl --proto '=https' --tlsv1.2 -sSf https://tiup-mirrors.pingcap.com/install.sh | sh
source /root/.bash_profile

# 升级到最新版本
tiup update --seft

# 查看镜像配置
tiup mirror show

离线组件包(选):

# 设置版本
version=v8.5.3
# 手动拉取需要的组件
tiup mirror clone tidb-community-server-${version}-linux-amd64 ${version} --os=linux --arch=amd64
######################################
## 若拉取过程中遇到超时情况可以使用wget进行下载
sudo yum install -y wget
cd tidb-community-server-${version}-linux-amd64
wget https://tiup-mirrors.pingcap.com/ctl-v8.5.3-linux-amd64.tar.gz
wget https://tiup-mirrors.pingcap.com/pd-v8.5.3-linux-amd64.tar.gz
wget https://tiup-mirrors.pingcap.com/prometheus-v8.5.3-linux-amd64.tar.gz
wget https://tiup-mirrors.pingcap.com/spark-v2.4.3-any-any.tar.gz
wget https://tiup-mirrors.pingcap.com/tiflash-v8.5.3-linux-amd64.tar.gz
wget https://tiup-mirrors.pingcap.com/tikv-v8.5.3-linux-amd64.tar.gz
######################################
# 压缩
tar zcvf tidb-community-server-${version}-linux-amd64.tar.gz tidb-community-server-${version}-linux-amd64
# 将压缩包上传或者远程复制到离线安装的服务器
# 解压
tar zxvf tidb-community-server-v8.5.3-linux-amd64.tar.gz
# 将当前镜像地址为离线镜像源
sh tidb-community-server-v8.5.3-linux-amd64/local_install.sh 
tiup mirror show # /root/tidb-community-server-v8.5.3-linux-amd64
tiup list

4. TiDB单机伪分布式部署

4.1. 安装TiUP Cluster组件

# 首次安装
tiup cluster
# 更新安装
tiup update --self && tiup update cluster

4.2. 调整系统配置

调整sshd 服务的连接数限制,由默认值10增加至20。

vi /etc/ssh/sshd_config

配置内容如下:

MaxSessions 20

生效配置:

service sshd restart

4.3. 编辑拓扑配置文件

mkdir -p /tidb-deploy
mkdir -p /tidb-data
vi topo.yaml

配置如下:

global:
 user: "tidb"
 ssh_port: 22
 deploy_dir: "/tidb-deploy"
 data_dir: "/tidb-data"
monitored:
 node_exporter_port: 9100
 blackbox_exporter_port: 9115
server_configs:
 tidb:
   instance.tidb_slow_log_threshold: 300
 tikv:
   readpool.storage.use-unified-pool: false
   readpool.coprocessor.use-unified-pool: true
 pd:
   replication.enable-placement-rules: true
   replication.location-labels: ["host"]
 tiflash:
   logger.level: "info"
pd_servers:
 - host: 192.168.56.201
tidb_servers:
 - host: 192.168.56.201
tikv_servers:
 - host: 192.168.56.201
   port: 20160
   status_port: 20180
   config:
     server.labels: { host: "logic-host-1" }
 - host: 192.168.56.201
   port: 20161
   status_port: 20181
   config:
     server.labels: { host: "logic-host-2" }
 - host: 192.168.56.201
   port: 20162
   status_port: 20182
   config:
     server.labels: { host: "logic-host-3" }
tiflash_servers:
 - host: 192.168.56.201
monitoring_servers:
 - host: 192.168.56.201
grafana_servers:
 - host: 192.168.56.201

4.4. 伪分布式部署

tiup cluster deploy tidbcluster v8.5.3 ./topo.yaml --user root -p

# 查看集群列表
tiup cluster list

4.5. 启停TiDB集群

4.5.1. 普通启停

tiup cluster start tidbcluster
tiup cluster stop tidbcluster

4.5.2. 安全启停

tiup cluster start tidbcluster --init
tiup cluster stop tidbcluster

5. 安装MySQL客户端

# 1. 解压缩安装包
cd /data/module/software/
tar -xvf mysql-5.7.28-1.el7.x86_64.rpm-bundle.tar

# 2. 安装MySQL Client RPM包
cd /data/module/software/
sudo rpm -ivh mysql-community-common-5.7.28-1.el7.x86_64.rpm
sudo rpm -ivh mysql-community-libs-5.7.28-1.el7.x86_64.rpm
sudo rpm -ivh mysql-community-client-5.7.28-1.el7.x86_64.rpm --nodeps --force

6. TiDB远程连接

6.1. MySQL Client

mysql --host 127.0.0.1 --port 4000 -u root -- 普通启动方式
mysql --host 127.0.0.1 --port 4000 -u root -p'${PWD}' -- 安全启动方式

6.2. Navicat Premium

此处以Navicat Premium-16.1.2 为例。

  • 连接名 :vm-tidb-cluster(自定义)
  • 主机 :192.168.56.201
  • 端口 :4000
  • 用户名 :root
  • 密码 :空 | ${安全启动随机密码}

7. 验证

# 查看集群的拓扑结构和状态
tiup cluster display tidbcluster

8. 回退方案

# 先退出tiup playground控制台
tiup clean --all

# 卸载MySQL客户端
sudo rpm -qa | grep mysql

sudo rpm -e --nodeps mysql-community-client-5.7.28-1.el7.x86_64
sudo rpm -e --nodeps mysql-community-libs-5.7.28-1.el7.x86_64
sudo rpm -e --nodeps mysql-community-common-5.7.28-1.el7.x86_64
2 个赞

是不是在看赵老师的tidb课程? :grinning:

2 个赞

没呢,我就是看官网的安装文档:https://docs.pingcap.com/zh/tidb/stable/quick-start-with-tidb/,赵老师的什么课程呀,推荐推荐下~

2 个赞

整理的很赞

1 个赞

单机伪分布式也是本地单机部署方式吧?

1 个赞

时间仓促目前只有这个水平,呵呵~

是的,类似zookeeper部署,可以在一台服务器上,通过修改端口号,模拟在多台机器的场景

写得我很详细,挺不错的

2 个赞

很不错的实践分享

1 个赞

此话题已在最后回复的 7 天后被自动关闭。不再允许新回复。