商城项目02_环境搭建安装vagrantdockermysqlredis从0搭建各个微服务项目数据库初始化(代码片段)

所得皆惊喜 所得皆惊喜     2022-12-01     376

关键词:

文章目录

①. 安装virtualBox

  • ①. 下载、安装virtualBox:https://www.virtualbox.org/ ,要开启cpu虚拟化(6.0.12)

  • ②. 图解(系统开启虚拟机默认)

  • ③. 百度云地址:
    链接:https://pan.baidu.com/s/1MuxoSD53YW30pnj-egY71Q
    提取码:1234

②. vagrant(用来安装虚拟机)

  • ①. 下载和安装vagrant
  1. Vagrant下载
  2. vagrant官网镜像
  3. 安装vagrant后,进入cmd,我们敲vagrent有信息就证明安装成功了
  4. 注意:VirualBox会与包括带不限于如下软件冲突,需要卸载这些软件,然后重启电脑。冲突的软件:红蜘蛛、360、净网大师(有可能)等
  • ②. 打开window cmd窗口,运行vagrant init centos/7,即可初始化一个centos7系统,运行vagrant up即可启动虚拟机。系统root用户的密码是vagrant(会出现很慢下载的清空)
    (下好了vargant,如果安装centos7很慢,可以用下面的连接替换初始化的那一步:vagrant init centos7 https://mirrors.ustc.edu.cn/centos-cloud/centos/7/vagrant/x86_64/images/CentOS-7.box。然后在执行vagrant up ,就很快了,这个是国内的镜像地址。vagrant up,中间执行出现异常的话,多试几次)

  • ③. 关于vagrant命令
    (注意:下次使用也可以直接vagrant up直接启动,但要确保当前目录在C:/用户/ 文件夹下,他下面有一个Vagrantfile,不过我们也可以配置环境变量)

	(1). 下载cenots7: vagrant init centos/7
	(2). 启动虚拟机:vagrant up
	(3). 连接虚拟机:vagrant ssh
	(4). 重新加载:vagrant reload
	(5). 查看ip:ip addr (linux)
	(6). 查看当前用户: whoami (linux)
  • ④. 虚拟机网络设置(实现虚拟机和本地的window ip互通)
  1. Virtualbox使用的网络方式是网络地址转换NAT(端口转发),如果其它主机要访问虚拟机,必须由windows端口如3333转发给虚拟机端口如3306。这样每在linux里安一个软件都要进行端口映射,不方便,(也可以在virualBox里挨个设置)。我们想要给虚拟机一个固定的ip地址,windows和虚拟机可以互相ping通)
  2. 编辑Vagrantfile文件,修改其中的config.vm.network “private_network”,ip:“192.168.56.10”
  3. 在虚拟机下和window下互相ping各自的ip
  • ⑤. 使用SSH免密登录(以后可以使用提供的ssh连接工具进行连接)
Vagrant ssh进去系统之后
vi /etc/ssh/sshd_config
修改 PasswordAuthentication 将no改成yes
重启服务 service sshd restart
  • ⑥. 如果出现虚拟机都ping不通baidu的情况(我的本地坏境是可以ping通的)

③. 虚拟机安装docker

  • ①. 卸载之前的docker
	sudo yum remove docker \\
	  docker-client \\
	  docker-client-latest \\
	  docker-common \\
	  docker-latest \\
	  docker-latest-logrotate \\
	  docker-logrotate \\
	  docker-engine
  • ②. 安装必须依赖的包
	  sudo yum install -y yum-utils \\
	  device-mapper-persistent-data \\
	  lvm2
  • ③. 告诉linux中docker的地址(配置镜像)
	sudo yum-config-manager \\
	    --add-repo \\
	    https://download.docker.com/linux/centos/docker-ce.repo
  • ④. 安装docker
	sudo yum install docker-ce docker-ce-cli containerd.io
	# 设置开机自启动
	sudo systemctl enable docker
  • ⑤. 配置镜像加速
	sudo mkdir -p /etc/docker
	sudo tee /etc/docker/daemon.json <<-'EOF'
	
	  "registry-mirrors": ["https://opvvjpc5.mirror.aliyuncs.com"]
	
	EOF
	sudo systemctl daemon-reload  
	sudo systemctl restart docker 
  • ⑥. docker命令:
	(1). 查看docker的版本:docker -v
	(2). 设置开机自启动:sudo systemctl enable docker
	(3). 查看镜像:sudo docker images 
	(4). 设置docker里面容器自启动:sudo docker update redis --restart=always

④. docker上安装mysql

  • ①. 拉取mysql的镜像
	sudo docker pull mysql:5.7
  • ②. 创建mysql容器并开启
    -p 3306:3306:将宿主机的3306端口映射到容器的3306端口
    -v /mydata/mysql/log:/var/log/mysql:在宿主机下创建log文件夹映射到容器的mysql下
    -v /mydata/mysql/data:/var/lib/mysql :将配置文件夹挂载到主机
    -v /mydata/mysql/conf:/etc/mysql :将配置问价挂载到主机
    -e MYSQL_ROOT_PASSWORD=root :初始化root用户的密码
    -d 表示后台运行
	# --name指定容器名字 -v目录挂载 -p指定端口映射  -e设置mysql参数 -d后台运行
	sudo docker run -p 3306:3306 --name mysql \\
	-v /mydata/mysql/log:/var/log/mysql \\
	-v /mydata/mysql/data:/var/lib/mysql \\
	-v /mydata/mysql/conf:/etc/mysql \\
	-e MYSQL_ROOT_PASSWORD=root \\
	-d mysql:5.7
  • ③. 查看mysql是否启动,并进入终端
	docker ps
	docker exec -it mysql/容器ID /bin/bash 使用守护式进程
  • ④. 修改mysql的统一编码为utf-8
  # 因为有目录映射,所以我们可以直接在镜像外执行
	vi /mydata/mysql/conf/my.conf 
	
	[client]
	default-character-set=utf8
	[mysql]
	default-character-set=utf8
	[mysqld]
	init_connect='SET collation_connection = utf8_unicode_ci'
	init_connect='SET NAMES utf8'
	character-set-server=utf8
	collation-server=utf8_unicode_ci
	skip-character-set-client-handshake
	skip-name-resolve
	
	docker restart mysql
  • ⑤. 连接mysql进行测试:
  • ⑥. 设置mysql开机自启 : docker update mysql --restart=always

⑤. docker上安装redis

  • ①. 安装镜像
	sudo docker pull redis
  • ②. 有坑
    (docker run -p…有坑 如果直接挂载的话docker会以为挂载的是一个目录,在虚拟机中我们先创建一个文件然后再挂载)
	# 在虚拟机中
	mkdir -p /mydata/redis/conf
	touch /mydata/redis/conf/redis.conf
  • ③. 运行redis
  1. -d redis redis-server /etc/redis/redis.conf:在后台启动redis服务,以etc/redis/redis.conf启动都会读取这个文件
  2. 注意:/etc/redis/redis.conf 只有/etc/redis 没有redis.conf、所以需要在前面先创建redis.conf
	docker run -p 6379:6379 --name redis \\
	-v /mydata/redis/data:/data \\
	-v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf \\
	# 下面这几句话的意思是,每次启动的时候都使用的/etc/redis/redis.conf的配置启动的
	-d redis redis-server /etc/redis/redis.conf
  • ④. 直接进去redis客户端
docker exec -it redis redis-cli

  • ⑤. 配置持久化、配置密码(选配)
	vim /mydata/redis/conf/redis.conf
	# 插入下面内容
	appendonly yes
	保存
	vim /mydata/redis/conf/redis.conf
	# 插入下面内容
	requirepass root
	保存
  • ⑥. 重启redis
	docker restart redis
  • ⑦. 测试
  • ⑧. 设置redis开机自启动:sudo docker update redis --restart=always

⑥. 从gitee初始化一个微服务

  • ①. 设置模板也要勾上
  • ②. 创建好之后如图所示
  • ③. 在IDEA中导入项目

⑦. 从0搭建各个微服务项目

  • ①. IDEA然后New Module–Spring Initializer–com.atguigu.gulimall , Artifact填 gulimall-product。Next—选择web(web开发),springcloud routing里选中openFeign(rpc调用)

  • ②. 依次创建出以下服务
    (商品服务product、存储服务ware、订单服务order、优惠券服务coupon、用户服务member)

  • ③. 共同点
    导入web和openFeign
    group:com.atguigu.gulimall
    Artifact:gulimall-XXX
    每一个服务,包名com.atguigu.gulimall.XXXproduct/order/ware/coupon/member
    模块名:gulimall-XXX

  • ④. 然后右下角显示了springboot的service选项,选择它

  • ⑤. 从某个项目粘贴个pom.xml粘贴到项目目录,修改它

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.atguigu.gulimall</groupId>
    <artifactId>gulimall</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>gulimall</name>
    <description>聚合服务</description>
    <packaging>pom</packaging>
    <modules>
        <module>gulimall-product</module>
        <module>gulimall-ware</module>
        <module>gulimall-order</module>
        <module>gulimall-coupon</module>
        <module>gulimall-member</module>
    </modules>
</project>
  • ⑥. 修改总项目的.gitignore,把小项目里的垃圾文件在提交的时候忽略掉,比如HELP.md
target/
pom.xml.tag
pom.xml.releaseBackup
pom.xml.versionsBackup
pom.xml.next
release.properties
dependency-reduced-pom.xml
buildNumber.properties
.mvn/timing.properties
.mvn/wrapper/maven-wrapper.jar

**/mvnw
**/mvnw.cmd
**/.mvn
**/target/

.idea

**/.gitignore
  • ⑦. 在maven窗口刷新,并点击+号,找到刚才的pom.xml添加进来,发现多了个root。这样比如运行root的clean命令,其他项目也一起clean了

  • ⑧. 提交项目到git(初始化项目)

⑧. 数据库坏境初始化

  • ①. 进入数据库工具,进行一个连接测试
  • ②. 依次创建出如下的数据库脚本
    (utf-8编码可能2个字节、3个字节、4个字节的字符,但是MySQL的utf8编码只支持3字节的数据,而移动端的表情数据是4个字节的字符。如果直接往采用utf-8编码的数据库中插入表情数据,java程序中将报SQL异常)

gulimall_oms
gulimall_pms
gulimall_sms
gulimall_ums
gulimall_wms

⑨. 安装Nginx(高级篇)

  • ①. 随便启动一个nginx实例,只是为了复制出配置
docker run -p80:80 --name nginx -d nginx:1.10 
  • ②. 将容器内的配置文件拷贝到/mydata/nginx/conf/ 下
mkdir -p /mydata/nginx/html
mkdir -p /mydata/nginx/logs
mkdir -p /mydata/nginx/conf
docker container cp nginx:/etc/nginx/*  /mydata/nginx/conf/ 
#由于拷贝完成后会在config中存在一个nginx文件夹,所以需要将它的内容移动到conf中
mv /mydata/nginx/conf/nginx/* /mydata/nginx/conf/
rm -rf /mydata/nginx/conf/nginx
  • ③. 终止原容器:
docker stop nginx
  • ④. 执行命令删除原容器:
docker rm nginx
  • ⑤. 建新的Nginx,执行以下命令
docker run -p 80:80 --name nginx \\
 -v /mydata/nginx/html:/usr/share/nginx/html \\
 -v /mydata/nginx/logs:/var/log/nginx \\
 -v /mydata/nginx/conf/:/etc/nginx \\
 -d nginx:1.10
  • ⑥. 设置开机启动nginx
docker update nginx --restart=always
  • ⑦. 创建“/mydata/nginx/html/index.html”文件,测试是否能够正常访问
echo '<h2>hello nginx!</h2>' >index.html
  • ⑧. 访问:http://nginx所在主机的IP:80/index.html

商城项目02_环境搭建安装vagrantdockermysqlredis从0搭建各个微服务项目数据库初始化安装nginx(代码片段)

文章目录①.virtualBox-管理虚拟机②.vagrant-安装虚拟机③.虚拟机安装-docker④.docker上安装mysql⑤.docker上安装redis⑥.从gitee初始化一个微服务⑦.从0搭建各个微服务项目⑧.数据库坏境初始化⑨.高级篇-安装Nginx①.virtualBox-管理虚拟机①... 查看详情

商城项目_目录

...存,八小时之外求发展。很开心和大家一起分享谷粒商城,持续更新中!!!商城项目01_电商系统基本模式、分布式基础概念、微服务架构图、微服务划分图商城项目02_环境搭建、安装VAGRANT、DOCKER、MYSQL、REDIS、从0... 查看详情

项目一众筹网01_02环境搭建_日志系统搭建日志打印级别debuginfoerror(代码片段)

日志系统搭建文章目录文章目录日志系统搭建文章目录26-后台-环境搭建-日志系统-简介27-后台-环境搭建-日志系统-各个日志系统整合介绍28-后台-环境搭建-日志系统-替换Spring的JCL的方案29-后台-环境搭建-日志系统-操作-主动打印... 查看详情

谷粒商城-分布式基础项目环境搭建(代码片段)

目录1. 项目背景2.项目架构3.分布式基础概念3.1.微服务3.2.集群&分布式&节点3.3.远程调用3.4.负载均衡3.5.服务注册/发现&注册中心3.6.配置中心3.7.服务熔断&服务降级 3.8.API网关  4.环境搭建4.1.安装Docker4.2.docker安装mysql1.... 查看详情

谷粒商城学习笔记--环境搭建&项目结构创建(代码片段)

一、环境虚拟机ip192.168.174.128本地ip192.168.31.14本地和虚拟机要互相ping通二、Docker虚拟化容器技术。Docker基于镜像,可以秒级启动各种容器。每一种容器都是一个完整的运行环境,容器之间互相隔离。安装dockerDocker安装文... 查看详情

ssm商城项目(代码片段)

1.  学习计划1、Solr服务搭建2、Solrj使用测试3、把数据库中的数据导入索引库4、搜索功能的实现2.  Solr服务搭建2.1.Solr的环境Solr是java开发。需要安装jdk。安装环境Linux。需要安装Tomcat。2.2.搭建步骤第一步:把solr的... 查看详情

谷粒商城_01_环境搭建(代码片段)

文章目录码云仓库安装git创建仓库微服务模块创建服务提交码云创建数据库gulimall_omsgulimall_pmsgulimall_smsgulimall_umsgulimall_wms后台管理系统renren-fastrenren-fast-vue安装vscode代码生成器renren-generatorproduct、gulimall_pms测试coupon、gulimall-smsmembe... 查看详情

02_hud项目试验篇建立一个qtforpython工程(代码片段)

欢迎来到我的博客,希望这篇文章对你有所帮助,如果觉得不错,请点赞搜藏哈。文章目录QtforPython快速入门1安装前要求2安装创建和激活环境安装测试安装3创建一个简单的程序来试验一下4总结QtforPython快速入门这一... 查看详情

谷粒商城-分布式基础篇-环境搭建(代码片段)

...;深感技术点过于零散,于是照着尚硅谷教程写了谷粒商城这个项目。谷粒商城是一个完整的大型分布式架构电商平台,这个项目将我目前学到的知识点,以及还未学到的知识点都串在了一起,可以说学完这个项目... 查看详情

谷粒商城-分布式基础篇-环境搭建(代码片段)

...;深感技术点过于零散,于是照着尚硅谷教程写了谷粒商城这个项目。谷粒商城是一个完整的大型分布式架构电商平台,这个项目将我目前学到的知识点,以及还未学到的知识点都串在了一起,可以说学完这个项目... 查看详情

美多商城环境搭建(代码片段)

 第一步:安装node.js:Node.js是一个基于ChromeV8引擎的JavaScript运行环境。  Node.js使用了一个事件驱动、非阻塞式I/O的模型,使其轻量又高效。  http://nodejs.cn/  下载安装即可   node-v  查询是... 查看详情

团对-团队编程项目作业名称-开发环境搭建过程

瓣top250爬取环境搭建安装虚拟机装Ubantupsypider框架安装pip安装pythonget-pip.pyphantomjs安装wgethttps://bitbucket.org/ariya/phantomjs/downloads/phantomjs-2.1.1-linux-x86_64.tar.bz2 yuminstallphantomjspyspider安装pipinsta 查看详情

springcloudalibaba商城实战项目(day02)(代码片段)

四、搭建SpringCloudAlibaba环境4.1、简介官方文档:https://spring-cloud-alibaba-group.github.io/github-pages/hoxton/zh-cn/index.html我们所选用的组件:SpringCloudAlibaba-Nacos:注册中心(服务发现/注册)Sp 查看详情

day396.环境搭建-谷粒商城(代码片段)

一、环境搭建这里可使用VMWare,也可以使用VirtualBox,以下以VirtualBox为例子:1、安装linux虚拟机下载&安装VirtualBox,要开启CPU虚拟化https://www.virtualbox.org/—官方下载&安装Vagranthttps://app.vagrantup.com/boxes/se 查看详情

淘淘商城_0200_搭建后台管理系统

 后台管理系统工程搭建项目是maven项目,Maven的工程类型: 1、war包工程:web工程2、Jar包工程:java工程,打完是一个jar包3、Pom工程:父工程,聚合工程 ,这两个一般合起来用,pom工程即做父工程,又做聚合工程来聚合... 查看详情

商城项目03_人人前后端项目逆向工程common工程搭建coupon以及各个微服务工程搭建(代码片段)

文章目录①.人人前后端项目②.人人项目-逆向工程③.common工程搭建④.coupon、member、ware、order代码导入①.人人前后端项目①.在码云上搜索人人开源,我们使用renren-fast(后端)、renren-fast-vue(前端)项目gitclonehttps://gitee.com/renrenio/renren-f... 查看详情

vue框架_vue环境搭建及创建项目

1、node.js:概念介绍及安装node.js:是一个基于chrome浏览器的v8引擎,可以运行javascript的环境(平台) 特性:异步IO模型 npm:是一个包管理器(工具),可以按装依赖插件应用场景:聊天、电子商务 优点:高并发且实时的情况下... 查看详情

谷粒商城-分布式基础项目环境搭建(代码片段)

...销售产品和服务。如:苏宁易购、京东、天猫、小米商城C2B(CustomertoBusiness),即消费者对企业。先有消费者需求产生而后有企业生产,即先有消费者提出需求,后有生产企业按需求组织生产C2C(CustomertoConsumer),... 查看详情