1.    安装TIDB生成环境硬件要求

 

 

 

 

组件

CPU

内存

硬盘类型

网络

数量(最低要求)

TiDB

16核+

48 GB+

SAS

万兆网卡(2块最佳)

2

PD

8核+

16 GB+

SSD

万兆网卡(2块最佳)

3

TiKV

16核+

48 GB+

SSD

万兆网卡(2块最佳)

3

监控

8核+

16 GB+

SAS

千兆网卡

1

 

 

 

 

服务器总计

9

 

 

注:

•生产环境中的 TiDB 和 PD 可以部署和运行在同服务器上,如对性能和可靠性有更高的要求,应尽可能分开部署。

•生产环境强烈推荐使用更高的配置。

•TiKV 硬盘大小建议不要超过 800G 以防止硬盘损坏时,数据恢复耗时过长

2.  安装TIDB的虚拟机硬件环境

 处理器:I7系列CPU

  内存16G

 硬盘:SSD 100G

  Vm虚拟机:8个VM虚拟机,每台虚拟配给1.5G内存,操作系统Centos7.4版本以上,请确保主机和虚拟机能联上外网

 

机器名

IP

操作系统

配置

用途

TiDB1

192.168.1.49

CentOS7.4 X64

4C+8G+60G+200G扩展

TiKV+TiSpark

TiDB2

192.168.1.50

CentOS7.4 X64

4C+8G+60G+200G扩展

TiKV+TiSpark

TiDB3

192.168.1.51

CentOS7.4 X64

4C+8G+60G+200G扩展

TiKV+TiSpark

TiDB4

192.168.1.52

CentOS7.4 X64

4C+8G+260G

Mysql5.7+测试工具

TiDB5

192.168.1.53

CentOS7.4 X64

4C+8G+60G

TiDB+PD

TiDB6

192.168.1.54

CentOS7.4 X64

4C+8G+60G

TiDB+PD

TiDB7

192.168.1.55

CentOS7.4 X64

4C+8G+60G

TiDB+PD

TiDB8

192.168.1.56

CentOS7.4 X64

4C+8G+60G

中控机ansible+monitor

 

注:在TiDB1,TiDB2,TiDB3都需要进行操作,后面有说到如何用虚拟机挂载EXT4

3.  安装前的准备工作

在安装TIDB之前先做完好一些准备工作,包括安装环境,IP地址和主机名称等。

注:如果虚拟机是复制的,一定要将虚拟机的MAC地址重新生成一次,不然会出现不

能联网的问题,在生成MAC之前虚拟机系统先要关闭中,生成之后再启动。

 

tidb能直接用mysql吗 tidb配置_虚拟主机

 

tidb能直接用mysql吗 tidb配置_IP_02

 

tidb能直接用mysql吗 tidb配置_tidb能直接用mysql吗_03

 

 

给所有主机分配IP地址

 

执行  /etc/sysconfig/network-scripts/ifcfg-ens33按如下图设置网络环境

其中GATEWAY设的是网关,IPADDR是指定IP地址,必须与现有局域网在同一个网段下

例如:192.168.1.49  NETMASK表示子网掩码

 

tidb能直接用mysql吗 tidb配置_服务器_04

给所有主机重新命名

执行vim /etc/sysconfig/network 

添加如下两行

NETWORKING=yes    #使用网络

HOSTNAME= tidb01   #主机名称,主机名称用唯一编号表示

 

tidb能直接用mysql吗 tidb配置_服务器_05

执行vim  /etc/hosts 

添加如下一行:

192.168.1.49 tidb01

 

tidb能直接用mysql吗 tidb配置_tidb能直接用mysql吗_06

设好之后重新启动网络

执行service network restart

关闭firewalld防火墙

systemctl stop firewalld.service   #停止firewall防火墙服务

systemctl disable firewalld.service 关闭防火墙

 

tidb能直接用mysql吗 tidb配置_服务器_07

 

tidb能直接用mysql吗 tidb配置_tidb能直接用mysql吗_08

 

Centos最小安装之后需要安装的Yum

安装额外yum源

yum install epel-release

更新Centos系统

yum update可以将Centos更新至最新版

查看Centos版本号信息

cat /etc/redhat-release

 

tidb能直接用mysql吗 tidb配置_虚拟主机_09

 

查看linux内核版本

cat /proc/version

tidb能直接用mysql吗 tidb配置_服务器_10

 

查看系统是不是64位

getconf LONG_BIT

tidb能直接用mysql吗 tidb配置_IP_11

给虚拟机添加新的虚拟磁盘空间并转换为EXT4格式

TiDB1,TiDB2,TiDB3都需要进行操作挂载EXT4数据盘,操作如下:

在VM左侧窗口中对着虚拟主机单击右键设置->硬盘->添加->硬盘-SCSI->创建新虚拟磁盘

 

tidb能直接用mysql吗 tidb配置_IP_12

 

tidb能直接用mysql吗 tidb配置_IP_13

 

tidb能直接用mysql吗 tidb配置_虚拟主机_14

 

然后打开终端:看一下磁盘,sudo fdisk -l

此处的/dev/sdb就是我们新加的磁盘,我们要将其加进来

tidb能直接用mysql吗 tidb配置_虚拟主机_15

 

给新加的硬盘分区,执行如下命令:

sudo fdisk /dev/sdb

tidb能直接用mysql吗 tidb配置_虚拟主机_16

 

键入m,可看到帮助信息

 

再键入n表示新分区

 

再键入p选择基本分区

 

再键入1表示建一个分区

 

回车

 

回车,再回车

 

键入w ,再回车

 

格式化磁盘分区

 

用ext4格式对/dev/sdb进入格式化

 

mkfs.ext4 /dev/sdb

 

挂载分区

 

创建新的挂载点

 

mkdir /home

 

将新磁盘分区挂载到/ home目录下

 

mount -t ext4 /dev/sdb /home

 查看挂载

df –hT

可以看到新加的硬盘:/dev/sdb 并且格式是ext4

tidb能直接用mysql吗 tidb配置_IP_17

设置开机自动挂载数据盘ext4参数

 

TiDB1,TiDB2,TiDB3都需要进行操作挂载EXT4数据盘,操作如下:

修改文件

vi /etc/fstab

加入一行:

/dev/sdb /home ext4 defaults,nodelalloc,noatime 0 0

 

卸载目录并重新挂载

 

umount /home

 

mount -a

确认是否生效,如果生效了会多出nodelalloc

 

TiDB1,TiDB2,TiDB3都需要进行操作,操作如下:

mount -t ext4

tidb能直接用mysql吗 tidb配置_虚拟主机_18

添加用户

 

所有虚拟主机都需要进操作:

添加用户

 

所有虚拟主机都需要进操作:

useradd tidb

passwd tidb

tidb能直接用mysql吗 tidb配置_tidb能直接用mysql吗_19

设置免密配置文件

 

所有虚拟主机都需要进操作:

visudo

将tidb ALL=(ALL) NOPASSWD: ALL加入到最后一行并保存

登录192.168.1.56虚拟机配置ssh互信免密码登录

 

执行如下合令:

 

su - tidb

 

ssh-keygen -t rsa  然后一路回车

 

这时当前用户home目录下面会生成一对密钥,id_rsa 为私钥,id_rsa.pub 为公钥

tidb能直接用mysql吗 tidb配置_服务器_20

 

通过 ssh-copy-id 进行传输公钥

 

执行下面命令:

 

ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.1.49

 

然后输入密码

tidb能直接用mysql吗 tidb配置_tidb能直接用mysql吗_21

 

其它虚拟主机一样操作:

 

ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.1.50

 

ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.1.51

 

ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.1.52

 

ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.1.53

 

ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.1.54

ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.1.55

ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.1.56                  #中控机也要这样做 

验证 ssh 互信及 sudo 免密码

 

以  tidb  用户登录到中控机,ssh 登录目标机器 IP,不需要输入密码并登录成功,表示 ssh 互信配置成功。

 

执行如下命令:

 

ssh 192.168.1.49

 

ssh 192.168.1.50

 

ssh 192.168.1.51

 

ssh 192.168.1.52

 

ssh 192.168.1.53

 

ssh 192.168.1.54

 

ssh 192.168.1.55

tidb能直接用mysql吗 tidb配置_虚拟主机_22

接着登录目标主机 ssh root@192.168.1.49,等主机无须密码即可登录成功。

tidb能直接用mysql吗 tidb配置_tidb能直接用mysql吗_23

 

以  tidb  用户登录到部署目标机器后,执行以下命令,不需要输入密码并切换到 root 用户,表示  tidb  用户 sudo 免密码配置成功。

tidb能直接用mysql吗 tidb配置_IP_24

 

关闭SELinux

 

所有虚拟主机都需要进操作:

vim /etc/selinux/config

将SELINUX=enforcing改为SELINUX=disabled

设置后需要重启才能生效

tidb能直接用mysql吗 tidb配置_tidb能直接用mysql吗_25

 

手工安装 NTP 服务

49-55 IP虚拟主机都需要进行下面的操作:

 执行如下命令:

ssh 192.168.1.49

su - tidb

sudo yum install ntp ntpdate

sudo vi /etc/ntp.conf

将NTP的IP设成中控机的IP地址,

server 192.168.1.56 iburst

server 0.centos.pool.ntp.org iburst

server 1.centos.pool.ntp.org iburst

iburst : 当server不可达时,以默认发包速率的8倍向服务器发包。请修改为主控机的实际IP

tidb能直接用mysql吗 tidb配置_IP_26

 

sudo systemctl start ntpd.service

执行以下命令输出  running  表示 NTP 服务正在运行:

sudo systemctl status ntpd.service

tidb能直接用mysql吗 tidb配置_tidb能直接用mysql吗_27

执行 ntpstat 命令,输出 synchronised to NTP server(正在与 NTP server 同步)表示在正常同步:

tidb能直接用mysql吗 tidb配置_服务器_28

 

exit

 

exit   

 

ssh 192.168.1.50 其它步骤和上面的一样

手工安装192.168.1.56中控机的 NTP 服务

su - tidb

sudo yum install ntp ntpdate

sudo vi /etc/ntp.conf

说明:需要增加一个restrict,可以使用当前服务器的IP段,192.168.1.1是自已的网关IP段注意填写自己的IP段。

ntp中本机使用server 127.127.1.0

tidb能直接用mysql吗 tidb配置_IP_29

最后启动NTP服务:

sudo systemctl start ntpd.service

 

在192.168.1.53虚拟机安装MYSQL客户端工具

下载:mysql57-community-release-el7-11.noarch.rpm

安装:rpm -Uvh mysql57-community-release-el7-9.noarch.rpm

yum安装server:

yum install mysql-community-server

yum安装client:

yum install mysql-community-client