在安装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就可以成功的链接上了。

Last modification:September 6th, 2019 at 02:23 pm
如果觉得我的文章对你有用,请随意赞赏