【项目篇-01】Vmware虚拟机和环境安装配置

一,Vmware虚拟机和环境安装配置

本文首先从环境开始安装起,不管是现在的基础环境,如mysql,redis,还是后面可能需要的rocketMq,es等,都会在本文中详细的写出安装命令。在安装前,由于本人用的是虚拟机,虽然有服务器,但是服务器真的太耗成本了,所以选择虚拟机,虚拟机使用的 Vmware17,ios选择的是ubuntu版本,ubuntu相对于centos在安装环境时比较友好

1,vmware安装

vmware虚拟机用的版本是17,可以直接去官网下载:官网下载地址(https://support.broadcom.com/group/ecx/productdownloads?subfamily=VMware Workstation Pro)

官网下载不了的话,也可以直接使用本人版本,其链接如下 https://pan.baidu.com/s/1wFgvD2GJNWnAOhqJSnZZ1w?pwd=mptm ,提取码: mptm ,如果使用不了,可以在最底下的名片加本人微信私要即可

安装步骤就比较简单,可以选择custom自定义安装,然后修改一下文件路径不要存c盘就行,一直点next安装就行,后面尽量选择它推荐的方式一直往下点直到安装完成即可。也可以搜索一下其他博主的安装文章,大家写的都大差不差

vmware许可证如下,参考原文链接:vmware许可证 ,需要根据版本一个个去试,本人目前使用的这个 JU090-6039P-08409-8J0QH-2YR7F 是有效的

java 复制代码
17:
14A4RR-813DK-M81A9-4U35H-06KND
JU090-6039P-08409-8J0QH-2YR7F
16:

ZF3R0-FHED2-M80TY-8QYGC-NPKYF
FNEW8-ZY7TY-Y1Z7W-QZQCR-NZZ5V
XJKN8-KM9KX-H1Y91-FQPVX-QFXUZ
15:FC7D0-D1YDL-M8DXZ-CYPZE-P2AY6
12:ZC3TK-63GE6-481JY-WWW5T-Z7ATA
10:1Z0G9-67285-FZG78-ZL3Q2-234JG

2,ios镜像下载安装

ios我这边选择是ubuntu的镜像,大家也可以选择centos的镜像,但是在安装东西这块Ubuntu会比centos爽很多,稍微大点的企业的运维用ubuntu系统比较多,而且ubuntu开源,社区比较活跃,官方文档也比较齐全,因此选择ubuntu。

其官网下载地址如下:https://ubuntu.com/download/server ,本人是选择下面这个版本,维护时间比较长,并且开源免费,打开网页直接下载即可

如果下面的网页打不开或者实在不想等,那么本人帮各位下载好了,直接从我的网盘里面获取即可,其链接如下:https://pan.baidu.com/s/1w7ZvSgZx8iCL9ee-Bb6RjQ?pwd=eqii

在新建虚拟机的时候需要用到ios文件,那么就需要选择上面下载的镜像,当作系统盘

后面就是傻瓜式创建新的虚拟机即可,内存cpu大小根据实际情况,网络可以选择默认的NAT的模式,但是如果是固定在家或者在公司学习,网络不会频繁切换,那么优先选择桥接模式,因为NAT模式需要接口转换比较麻烦,桥接模式直接获取虚拟机的ip那么就可以直接在windows上面连接

后面设置服务名称,账号密码等,根据一步一步提示往下走即可,直到成功安装为止。

最后说一下到这步的时候,前面的name和servername可以自定义,那个是设置电脑名称,后面的username和password需要记住,这个是这台机器用户的账号密码

3,FinalShell安装

上面将虚拟机安装好并通过ios创建一个新的虚拟机之后,在虚拟机里面操作可能不太方便,可以直接在windows中的finalshell或者xshell操作,这样就不需要频繁的操作虚拟机,虚拟机复制黏贴等功能也不是特别友好,我这边选择finalshell操作

finalShell官网地址如下:https://www.hostbuf.com/t/988.html ,选择windows版本即可

随后在虚拟机中,获取虚拟机的ip,通过ifconfig命令,不行就ipconfig

java 复制代码
ifconfig

最后在finalshell连接虚拟机,用户名和密码在创建虚拟机步骤中设置的,这里填入即可

连接成功后会出现一下信息,会将剩余的内存cpu等这些显示

4,docker安装

接下来需要在虚拟机中安装docker,还是通过finalshell里面进行操作,为什么选择ubantu系统,就是图他的安装东西快捷,接下来傻瓜式安装docker即可

卸载旧版本

java 复制代码
sudo apt-get remove docker docker-engine docker.io containerd runc

更新索引

java 复制代码
sudo apt-get update

安装必要依赖和ca证书

java 复制代码
sudo apt-get install -y ca-certificates curl gnupg lsb-release

创建GPG密钥安装目录

java 复制代码
sudo mkdir -p /etc/apt/keyrings

安装GPG密钥

java 复制代码
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

设置docker软件源

java 复制代码
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

再次更新索引

java 复制代码
sudo apt-get update

安装 Docker Engine

java 复制代码
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

最后安装成功之后,查看一下images

java 复制代码
sudo docker images

最后安装一下docker的国内镜像,这样后续pull镜像的时候就快多了,首先需要创建文件

java 复制代码
sudo mkdir -p /etc/docker
sudo nano /etc/docker/daemon.json

随后在文件中输入一下内容,最后ctrl+o保存,ctrl+x退出即可

java 复制代码
{
  "registry-mirrors": [
    "https://docker.m.daocloud.io",
    "https://mirror.ccs.tencentyun.com",
    "https://registry.docker-cn.com",
    "https://hub-mirror.c.163.com"
  ]
}

最后需要重启一下docker

java 复制代码
sudo systemctl daemon-reexec
sudo systemctl restart docker

也可以测试一下,输入一下命令就能找到刚刚配置的镜像源

java 复制代码
sudo docker info | grep "Registry Mirrors" -A 1

5,mysql安装

这里安装一个mysql8.0版本,首先还是先拉取镜像,这里选择8.0版本

java 复制代码
sudo docker pull mysql:8.0

随后创建目录,用于挂在容器内部数据,防止数据丢失

java 复制代码
sudo mkdir -p /mydata/mysql/data
sudo mkdir -p /mydata/mysql/conf
sudo mkdir -p /mydata/mysql/logs

随后启动mysql容器,这里设置密码为123456,密码可以更改

java 复制代码
sudo docker run -d \
  --name mysql \
  -p 3306:3306 \
  -v /mydata/mysql/data:/var/lib/mysql \
  -v /mydata/mysql/conf:/etc/mysql/conf.d \
  -v /mydata/mysql/logs:/logs \
  -e MYSQL_ROOT_PASSWORD=123456 \
  mysql:8.0

随后查看容器是否启动成功

java 复制代码
sudo docker ps -a

最后再conf配置文件中加一个 my.cnf 配置类

java 复制代码
sudo nano /mydata/mysql/conf/my.cnf

配置类的内容如下,主要是设置一些默认的字符集

java 复制代码
[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_general_ci

[client]
default-character-set=utf8mb4

设置完成之后,再重新启动容器,可以通过容器名称,也可以通过容器id进行重启

java 复制代码
sudo docker restart mysql

也可以通过进入容器内部进行测试,判断mysql是否能用,其步骤如下

  • sudo docker ps:查看正在运行的容器,获取容器id
  • sudo docker exec -it 容器id /bin/bash:通过容器id进入容器内部
  • mysql -u root -p:执行进入mysql的命令,随后输入密码,上面设置的是123456
  • create database mall: 创建一个数据库

成功之后,直接再外面通过navicat进行连接即可,ip还是通过ifconfig获取

6,redis安装

接下来直接通过docker安装redis,首先拉起镜像源,我这里直接使用最新版本

java 复制代码
sudo docker pull redis:latest

随后启动redis,通过交互式运行,设置名字为redis,数据挂载到 /mydata/redis/data

java 复制代码
sudo docker run -d --name redis \
  -p 6379:6379 \
  -v /mydata/redis/data:/data \
  redis redis-server --appendonly yes

随后通过命令查看redis是否启动

java 复制代码
sudo docker ps -a

也可以进入容器内部,看是否可用

java 复制代码
docker exec -it redis redis-cli

外部连接的工具推荐使用 AnotherRedisManager,可以直接在github下载,作者将这个开源的工具也打包成了一个exe文件,属于是非常轻量级的工具

github地址如下:https://github.com/qishibo/AnotherRedisDesktopManager/releases

其网页内容如下,直接选择windows系统的zip下载即可

7,elasticsearch安装

设置max_map_count最大值

java 复制代码
sysctl -w vm.max_map_count=262144

安装es版本,选择7.7.1

java 复制代码
sudo docker pull elasticsearch:7.7.1

启动脚本如下,设置堆内存大小

java 复制代码
sudo docker run --name elasticsearch -d -e ES_JAVA_OPTS="-Xms512m -Xmx512m" -e "discovery.type=single-node" -p 9200:9200 -p 9300:9300 elasticsearch:7.7.1

进入容器

java 复制代码
sudo docker exec -it elasticsearch /bin/bash

随后修改elasticsearch.yml文件

java 复制代码
cd config
vim elasticsearch.yml

修改的内容如下:

java 复制代码
cluster.name: "docker-cluster"
network.host: 0.0.0.0
#设置跨域问题
http.cors.enabled: true 
http.cors.allow-origin: "*"
#设置端口号
http.port: 9200

随后curl验证是否成功

java 复制代码
curl 0.0.0.0:9200

8,kibana安装

拉取镜像

java 复制代码
sudo docker pull kibana:7.7.1

新建文件夹

java 复制代码
sudo mkdir -p /data/elk7/kibana/config/
vi /data/elk7/kibana/config/kibana.yml

内容如下

复制代码
server.name: kibana
server.host: "0"
elasticsearch.hosts: [ "http://192.168.1.246:9200"]
xpack.monitoring.ui.container.elasticsearch.enabled: true

启动命令如下

java 复制代码
sudo docker run -d --name=kibana --restart=always -p 5601:5601 -v /data/elk7/kibana/config/kibana.yml:/usr/share/kibana/config/kibana.yml kibana:7.7.1

9,rocketmq单机版搭建

插件rocketmq目录

java 复制代码
sudo mkdir -p /mydata/rocketmq/namesrv/logs
sudo mkdir -p /mydata/rocketmq/broker/logs
sudo mkdir -p /mydata/rocketmq/broker/store
sudo mkdir -p /mydata/rocketmq/broker/conf

sudo rm -rf /mydata/rocketmq/broker/logs /mydata/rocketmq/broker/store
sudo mkdir -p /mydata/rocketmq/broker/logs /mydata/rocketmq/broker/store
sudo chown -R 1000:1000 /mydata/rocketmq/broker/logs /mydata/rocketmq/broker/store
sudo chmod -R 775 /mydata/rocketmq/broker/logs /mydata/rocketmq/broker/store

配置

json 复制代码
brokerClusterName=DefaultCluster
brokerName=broker-a
brokerId=0
namesrvAddr=192.168.31.47:9876
brokerIP1=192.168.31.47
listenPort=10911
deleteWhen=04
fileReservedTime=48
brokerRole=ASYNC_MASTER
flushDiskType=ASYNC_FLUSH
autoCreateTopicEnable=true
storePathRootDir=/home/rocketmq/store
storePathCommitLog=/home/rocketmq/store/commitlog
storePathConsumerQueue=/home/rocketmq/store/consumequeue
storePathIndex=/home/rocketmq/store/index

启动rocketmq

java 复制代码
sudo docker pull apache/rocketmq:4.9.4

启动rocketmq

java 复制代码
sudo docker run -d --name rocketmq-namesrv --restart=always -p 9876:9876 -v /mydata/rocketmq/namesrv/logs:/home/rocketmq/logs   apache/rocketmq:4.9.4 sh mqnamesrv

看日志

java 复制代码
sudo docker ps | grep rocketmq-namesrv

启动broker

java 复制代码
sudo docker run -d --name rocketmq-broker --restart=always --user root -p 10911:10911 -p 10909:10909
  -v /mydata/rocketmq/broker/conf/broker.conf:/home/rocketmq/broker.conf -v /mydata/rocketmq/broker/logs:/home/rocketmq/logs -v /mydata/rocketmq/broker/store:/home/rocketmq/store apache/rocketmq:4.9.4 sh mqbroker -c /home/rocketmq/broker.conf

启动日志

java 复制代码
sudo docker logs -f rocketmq-broker
sudo docker logs --tail=200 rocketmq-broker

排查

java 复制代码
sudo docker exec -it rocketmq-broker sh
sh /home/rocketmq/rocketmq-4.9.4/bin/mqadmin topicStatus -n 192.168.31.47:9876 -t zhsTopicV1

10,canal消息中间件

进入mysql容器

sql 复制代码
show variables like 'log_bin';
show variables like 'binlog_format';
show variables like 'binlog_row_image';
show master status;

新建canal账号

sql 复制代码
CREATE USER IF NOT EXISTS 'canal'@'%' IDENTIFIED BY 'canal123456';
GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'canal'@'%';
FLUSH PRIVILEGES;
SHOW GRANTS FOR 'canal'@'%';

登录mysql

java' 复制代码
sudo docker exec -it mysql mysql -ucanal -pcanal123456

拉取canal镜像

java 复制代码
sudo docker pull canal/canal-server:v1.1.7

新建canal日志

java 复制代码
sudo mkdir -p /mydata/canal/logs

启动docker服务

java 复制代码
sudo docker run -d \
  --name canal-server \
  --restart=always \
  -p 11111:11111 \
  -v /mydata/canal/logs:/home/admin/canal-server/logs \
  -e canal.auto.scan=false \
  -e canal.destinations=example \
  -e canal.instance.master.address=192.168.31.47:3306 \
  -e canal.instance.dbUsername=canal \
  -e canal.instance.dbPassword=canal123456 \
  -e canal.instance.connectionCharset=UTF-8 \
  -e canal.instance.tsdb.enable=true \
  -e canal.instance.gtidon=false \
  -e canal.instance.filter.regex=soulv2\.user \
  -e canal.serverMode=rocketMQ \
  -e rocketmq.namesrv.addr=192.168.31.47:9876 \
  -e canal.mq.topic=xy_user_profile_sync_topic \
  canal/canal-server:v1.1.7
相关推荐
IT策士1 小时前
Redis 从入门到精通:内存管理与淘汰策略
数据库·redis·缓存
承渊政道1 小时前
【MySQL数据库学习】(MySQL内置函数)
数据库·学习·mysql·ubuntu·bash·数据库开发·数据库系统
无敌的牛11 小时前
redis学习过程
数据库·redis·学习
北顾笙98011 小时前
MySQL-day2
数据库·mysql
程序猿乐锅12 小时前
【MySQL | 第八篇】MySQL 视图
数据库·mysql
swordbob14 小时前
Redis 3 大问题 + 5 大扩展问题
redis
AOwhisky15 小时前
Redis 学习笔记(第一期):概述、安装配置与核心理论
运维·数据库·redis·笔记·学习·云计算
就叫_这个吧16 小时前
IDEA Mybatis xml文件,实现sql语句联想,自动填入补充
xml·mysql·intellij-idea·mybatis
AOwhisky16 小时前
Redis 学习笔记(第四期):高可用与集群(哨兵 + Cluster + 容器化)
linux·运维·数据库·redis·笔记·学习·缓存