TiDB 集群安装

通过TiUP 离线组件包部署

  • tidb-community-server-v6.5.0-linux-amd64.tar.gz
  • tidb-community-toolkit-v6.5.0-linux-amd64.tar.gz

1. 环境检查

  • 集群ssh免密互通

  • 确定ssh端口

  • 关闭swap

    echo "vm.swappiness = 0">> /etc/sysctl.conf
    swapoff -a && swapon -a
    sysctl -p
    
  • 防火墙关闭或放开相关端口

    组件 默认端口 说明
    TiDB 4000 应用及 DBA 工具访问通信端口
    TiDB 10080 TiDB 状态信息上报通信端口
    TiKV 20160 TiKV 通信端口
    TiKV 20180 TiKV 状态信息上报通信端口
    PD 2379 提供 TiDB 和 PD 通信端口
    PD 2380 PD 集群节点间通信端口
    TiFlash 9000 TiFlash TCP 服务端口
    TiFlash 8123 TiFlash HTTP 服务端口
    TiFlash 3930 TiFlash RAFT 服务和 Coprocessor 服务端口
    TiFlash 20170 TiFlash Proxy 服务端口
    TiFlash 20292 Prometheus 拉取 TiFlash Proxy metrics 端口
    TiFlash 8234 Prometheus 拉取 TiFlash metrics 端口
    Pump 8250 Pump 通信端口
    Drainer 8249 Drainer 通信端口
    CDC 8300 CDC 通信接口
    Monitoring 9090 Prometheus 服务通信端口
    Monitoring 12020 NgMonitoring 服务通信端口
    Node_exporter 9100 TiDB 集群每个节点的系统信息上报通信端口
    Blackbox_exporter 9115 Blackbox_exporter 通信端口,用于 TiDB 集群端口监控
    Grafana 3000 Web 监控服务对外服务和客户端(浏览器)访问端口
    Alertmanager 9093 告警 web 服务端口
    Alertmanager 9094 告警通信端口
  • 集群时间同步, 使用ntp服务

2. 集群规划

主机 ip 服务
node1 192.168.11.12 TiDB PD TiKV TiFlash
node2 192.168.11.13 TiDB PD TiKV TiFlash
node3 192.168.11.14 TiDB PD TiKV TiFlash
node4 192.168.11.15 TiKV TiFlash Monitoring Grafana Alertmanager

3.部署 TiUP 组件

export version=v6.5.0

tar xzvf tidb-community-server-${version}-linux-amd64.tar.gz && \
sh tidb-community-server-${version}-linux-amd64/local_install.sh && \
source /root/.bashrc

4. 合并离线包

tar xf tidb-community-toolkit-${version}-linux-amd64.tar.gz
ls -ld tidb-community-server-${version}-linux-amd64 tidb-community-toolkit-${version}-linux-amd64
cd tidb-community-server-${version}-linux-amd64/
cp -rp keys ~/.tiup/
tiup mirror merge ../tidb-community-toolkit-${version}-linux-amd64

5. 初始化集群拓扑文件

tiup cluster template  > topology.yaml

vim topology.yaml

*注意: tiflash默认端口包括9000和8123, 如果服务器部署了lightningdb, 会有端口冲突, 注意修改tiflash_serverstcp_porthttp_port

global:
  user: "root"
  ssh_port: 22
  deploy_dir: "/opt/tidb-deploy"
  data_dir: "/data/tidb-data"
server_configs: {}
pd_servers:
  - host: 192.168.11.12
    client_port: 2379
    peer_port: 2380
  - host: 192.168.11.13
    client_port: 2379
    peer_port: 2380
  - host: 192.168.11.14
    client_port: 2379
    peer_port: 2380
tidb_servers:
  - host: 192.168.11.12
    port: 4000
    status_port: 10080
  - host: 192.168.11.13
    port: 4000
    status_port: 10080
  - host: 192.168.11.14
    port: 4000
    status_port: 10080
tikv_servers:
  - host: 192.168.11.12
    port: 20160
    status_port: 20180
  - host: 192.168.11.13
    port: 20160
    status_port: 20180
  - host: 192.168.11.14
    port: 20160
    status_port: 20180
  - host: 192.168.11.15
    port: 20160
    status_port: 20180
tiflash_servers:
  - host: 192.168.11.12
    tcp_port: 9000
    http_port: 8123
    flash_service_port: 3930
    flash_proxy_port: 20170
    flash_proxy_status_port: 20292
    metrics_port: 8234
  - host: 192.168.11.13
    tcp_port: 9000
    http_port: 8123
    flash_service_port: 3930
    flash_proxy_port: 20170
    flash_proxy_status_port: 20292
  - host: 192.168.11.14
    tcp_port: 9000
    http_port: 8123
    flash_service_port: 3930
    flash_proxy_port: 20170
    flash_proxy_status_port: 20292
  - host: 192.168.11.15
    tcp_port: 9000
    http_port: 8123
    flash_service_port: 3930
    flash_proxy_port: 20170
    flash_proxy_status_port: 20292
monitoring_servers:
  - host: 192.168.11.15
    port: 9090
grafana_servers:
  - host: 192.168.11.15
    port: 3000
alertmanager_servers:
  - host: 192.168.11.15
    web_port: 9093
    cluster_port: 9094

6. 执行部署

  • 检查集群风险

tiup cluster check ./topology.yaml --user root

  • 自动修复

tiup cluster check ./topology.yaml --apply --user root

  • 部署

tiup cluster deploy tidb-test v6.5.0 ./topology.yaml --user root

7. 检查部署状况

tiup cluster display tidb-test

8. 启动

  • 普通启动

    tiup cluster start tidb-test 预期结果输出 Started cluster tidb-test successfully,表示启动成功。使用普通启动方式后,可通过无密码的 root 用户登录数据库。

  • 安全启动

    tiup cluster start tidb-test --init

    Started cluster `tidb-test` successfully.
    The root password of TiDB database has been changed.
    The new password is: 'y_+3Hwp=*AWz8971s6'.
    Copy and record it to somewhere safe, it is only displayed once, and will not be stored.
    The generated password can NOT be got again in future.
    

    注意

    • 使用安全启动方式后,不能通过无密码的 root 用户登录数据库,你需要记录命令行返回的密码进行后续操作。
    • 该自动生成的密码只会返回一次,如果没有记录或者忘记该密码,请参照忘记 root 密码修改密码。

9. 验证

tiup cluster display tidb-test 预期结果输出:各节点 Status 状态信息为 Up 说明集群状态正常。

image-20230504110532989

客户端连接

无密码登录

mysql --host 127.0.0.1 --port 4000 -uroot

有密码登录

mysql --host 127.0.0.1 --port 4000 -uroot -p

创建用户

CREATE USER 'root'@'%' IDENTIFIED BY 'yisa123456';

授权

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;

web管理页面

http://pd_host:2379 初始用户名为root, 密码为空

停止集群所有服务或部分服务

  • tiup cluster stop tidb-test 停止所有节点所有服务

  • tiup cluster stop tidb-test -R [pd/tidb/tikv/tiflash] 停止所有节点的某服务

  • tiup cluster stop tidb-test -N [node1,node2,...] -R [pd/tidb/tikv/tiflash] 停止某节点的某服务