在安装tidb集群时我使用docker进行部署,当然我只是测试一下数据,当我们在生产环境下我们不要使用docker进行部署,我们应该使用Ansible进行部署,因为我的虚拟机之前安装docker,首先我们吧linux自带的docker卸掉(如果系统没有的话请忽略这步)
1.我们在命令行输入:
yum remove -y docker docker-common docker-selinux docker-engine。
然后我们安装yum-utils,device-mapper-persistent,lvm2
yum install -y yum-utils device-mapper-persistent-data lvm2
添加yum源配置,系统自带的库可能没有我们所需的软件,所以我们自行添加yum源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
接下来我们就可以开始安装docker并设置开机自行启动。
yum install docker-ce -y
systemctl start docker
systemctl enable docker
2.安装完之后我们还需要安装mysql,因为当我们配置好tidb集群的时候,我们需要使用mysql进行连接,
下载并安装mysql官方yum reoisitory
wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
然后直接yum进行安装
yum -y install mysql57-community-release-el7-10.noarch.rpm
然后安装mysql服务器
yum -y install mysql-community-server
可以测试一下mysql是否安装成功
mysql -version
测试一下是否可以登陆,首先我们先找到数据库密码
grep "password" /var/log/mysqld.log
root@localhost:后面跟的就是密码,
mysql -uroot -p
然后输入密码
进去之后必需的修改一个新的密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new password';
3.部署tidb集群
我们采用两个主机,一个pd,一个kv,pb这台主机主要是负责运算,而kv这台主机主要负责的是存储,pd的ip:
192.168.10.140,kv的ip:192.168.24.144
然后登陆pd主机创建并运行一个容器:
docker run -d --name pd1 \
-p 2579:2579 \ //开放的端口
-p 2382:2382 \
-v /etc/localtime:/etc/localtime:ro \ //挂载目录
-v /data:/data \
pingcap/pd:latest \
--name="pd1" \ //指定容器名称
--data-dir="/data/pd1" \ //所存放数据的目录
--client-urls="http://0.0.0.0:2579" \ //客户端地址
--advertise-client-urls="http://192.168.10.140:2579" \
--peer-urls="http://0.0.0.0:2382" \
--advertise-peer-urls="http://192.168.10.140:2382" \
--initial-cluster="pd1=http://192.168.10.140:2382"
然后登陆kv,创建并运行另一个容器
docker run -d --name tikv1 \
-p 20160:20160 \
--ulimit nofile=1000000:1000000 \
-v /etc/localtime:/etc/localtime:ro \
-v /data:/data \
pingcap/tikv:latest \
--addr="0.0.0.0:20160" \
--advertise-addr="192.168.24.143:20160" \
--data-dir="/data/tikv1" \
--pd="192.168.10.140:2579"
然后我们登陆pd这台主机执行
docker run -d --name tidb \
-p 4000:4000 \
-p 10080:10080 \
-v /etc/localtime:/etc/localtime:ro \
pingcap/tidb:latest \
--store=tikv \
--path="192.168.10.140:2579,192.168.24.143:2579"
配置完之后我们就可以使用mysql进行连接了
mysql -h 192.168.10.140 -P 4000 -u root -D mysql -p
然后输入我们提前修改过的密码即可
问题:
在其中可能会出现的问题,我们启动容器的时候名字输入错误,或其他因素,导致容器启动失败,这时如果要重新启动的话需要提前删除容器中的失败品,docker rm 容器id
再用mysql链接tidb集群时会报错,会说连接失败,无法连接,这个问题我上网搜了一下,修改了很多地方,最后我将192.168.10.140换成localhost就可以成功的链接上了。