商城-学习整理-基础-环境搭建(二)

目录

  • 一、环境搭建
    • 1、安装linux虚拟机
      • 1)下载&安装 VirtualBox https://www.virtualbox.org/,要开启 CPU 虚拟化
      • 2)虚拟机的网络设置
      • 3)虚拟机允许使用账号密码登录
      • 4)VirtualBox冲突
      • 5)修改 linux 的 yum 源
  • 2、安装docker
    • 1、卸载系统之前的 docker
    • 2、安装 Docker-CE(社区版)
    • 3、启动docker
    • 4、设置docker开机自启
    • 5、测试 docker 常用命令,注意切换到 root 用户下
    • 6、配置 docker 镜像加速
  • 3、docker 安装 mysql
    • 1、下载镜像文件
    • 2、创建实例并启动
    • 3、通过容器的 mysql 命令行工具连接
    • 4、设置 root 远程访问
    • 5、进入容器文件系统
  • 4、docker 安装 redis
    • 1、下载镜像文件
    • 2、创建实例并启动(需先在linux中创建redis.conf文件,使可以映射,保证挂载的时候有配置文件)
    • 3、使用 redis 镜像执行 redis-cli 命令连接
  • 5、开发环境统一
    • 1、Maven(修改maven的setting.xml文件)
    • 2、Idea&VsCode&webstorm
    • 3、安装配置 git
  • 6、创建微服务项目
    • 1、从 gitee 初始化一个项目
    • 2、商品服务、仓储服务、订单服务、优惠券服务、用户服务
    • 3、将zhenyanmall作为总项目,随便从子项目里面拷贝一个pom.xml到外面,修改配置
    • 4、添加.gitignore忽略版本管理文件
    • 5、idea安装gitee插件可以将代码提交到gitee。
  • 7、数据库初始化
  • 8、人人开源搭建后台管理系统
    • 1、将renren-fast、renren-fast-vue 克隆下来
    • 2、将renren-fast-vue中的.git文件删掉,用webstorm打开。
      • 1、安装node.js和下载依赖
      • 2、启动前端项目
    • 3、使用人人开源的代码生成器为每一个微服务生成增删改查代码
    • 4、为每个微服务生成代码和配置并解决报错
      • 1.启动时no active profile set, falling back to default profiles: default
      • 2.多profile文件形式:
      • 3.多profile配置激活
        • 3.1通过properties文件指定
        • 3.2通过yml文档块指定
        • 3.3通过configuration中的Program agruments指定
        • 3.4通过configuration中的VM options指定
        • 3.5通过configuration中的Enviroment variables指定
      • 4.配置优先顺序

一、环境搭建

1、安装linux虚拟机

1)下载&安装 VirtualBox https://www.virtualbox.org/,要开启 CPU 虚拟化

下载&安装 Vagrant
https://app.vagrantup.com/boxes/search Vagrant 官方镜像仓库
https://www.vagrantup.com/downloads.html Vagrant 下载
在安装的目录下,打开 window cmd 窗口,运行 Vagrant init centos/7,即可初始化一个 centos7 系统
在这里插入图片描述

运行 vagrant up 即可启动虚拟机。系统 root 用户的密码是 vagrant
在这里插入图片描述

vagrant 其他常用命令
 vagrant ssh:自动使用 vagrant 用户连接虚拟机。
在这里插入图片描述

 vagrant upload source [destination] [name|id]:上传文件
 https://www.vagrantup.com/docs/cli/init.html Vagrant 命令行

2)虚拟机的网络设置

默认虚拟机的 ip 地址不是固定 ip,开发不方便
 修改 Vagrantfile文件
config.vm.network “private_network”, ip: “192.168.56.10”
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
改为这个指定的子网地址(使用windows的网段,不改变windows的网段,比较熟悉的可以自己改网段,也要改windows的网段)
在这里插入图片描述
 重新使用 vagrant up 启动机器即可。然后再 vagrant ssh 连接机器
在这里插入图片描述

3)虚拟机允许使用账号密码登录

 默认只允许 ssh 登录方式,为了后来操作方便,文件上传等,我们可以配置允许账
号密码登录
Vagrant ssh 进去系统之后 (切换root账户)
vi /etc/ssh/sshd_config
修改 PasswordAuthentication yes/no
在这里插入图片描述

重启服务 service sshd restart
 以后可以使用提供的 ssh 连接工具直接连接

4)VirtualBox冲突

注意:VirtualBox 会与包括但不限于如下软件冲突,需要卸载这些软件,然后重启电脑;
冲突的软件:红蜘蛛,360,净网大师(有可能)等

5)修改 linux 的 yum 源

修改 linux 的 yum 源(可不修改,网速较慢,如果禁用,需要修改yum源)
1)、备份原 yum 源
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
2)、使用新 yum 源
curl -o /etc/yum.repos.d/CentOS-Base.repo
http://mirrors.163.com/.help/CentOS7-Base-163.repo
3)、生成缓存
yum makecache

2、安装docker

Docker 安装文档:https://docs.docker.com/install/linux/docker-ce/centos/
在这里插入图片描述
docker 镜像网站:docker hub
目前是:https://hub-stage.docker.com/

以下是从docker官网文档拷贝的安装流程,安装社区版即可,公司可使用企业版。

1、卸载系统之前的 docker

sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine

2、安装 Docker-CE(社区版)

安装必须的依赖
sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
设置 docker repo 的 yum 位置
sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
安装 docker,以及 docker-cli
sudo yum install docker-ce docker-ce-cli containerd.io

3、启动docker

sudo systemctl start docker

4、设置docker开机自启

sudo systemctl enable docker

5、测试 docker 常用命令,注意切换到 root 用户下

https://docs.docker.com/engine/reference/commandline/docker/
查看docker目前镜像
sudo docker images

6、配置 docker 镜像加速

去阿里云官方网站去查找:阿里云官网-》登录-》控制台-》左侧导航栏-》搜索镜像-》进入容器镜像服务 ACR-》镜像加速器-》centos
在这里插入图片描述

阿里云,容器镜像服务
针对 Docker 客户端版本大于 1.10.0 的用户
您可以通过修改 daemon 配置文件/etc/docker/daemon.json 来使用加速器
sudo mkdir -p /etc/dockersudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://82m9ar63.mirror.aliyuncs.com"]
}
EOFsudo systemctl daemon-reload 重启docker的后台线程
sudo systemctl restart docker 重启docker的服务

3、docker 安装 mysql

1、下载镜像文件

sudo   docker pull mysql:5.7

2、创建实例并启动

虚拟机root的密码也是vagrant,在root的账号下启动:

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

参数说明
-p 3306:3306:将容器的 3306 端口映射到主机的 3306 端口
-v /mydata/mysql/conf:/etc/mysql:将配置文件夹挂载到主机
-v /mydata/mysql/log:/var/log/mysql:将日志文件夹挂载到主机
-v /mydata/mysql/data:/var/lib/mysql/:将配置文件夹挂载到主机
-e MYSQL_ROOT_PASSWORD=root:初始化 root 用户的密码
-d 以后台方式运行,以哪个镜像启动容器

docker ps 查看正在运行的容器
在这里插入图片描述
容器与容器之间是相互隔离的,每一个容器都是一个完整的运行环境。
为了不每次查看容器中的日志,因此将容器中的日志挂载linux中

进入mysql容器进行验证:
docker exec -it container ID/Names /bin/bash
docker exec -it mysql /bin/bash
发现就是一个完整的linux目录结构。
在这里插入图片描述
whereis mysql
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

MySQL 配置(将以下内容拷贝到my.cnf中即可,拷贝之后注意一下,配置换行和空格,要不然重启不成功)
vi /mydata/mysql/conf/my.cnf

[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

注意:解决 MySQL 连接慢的问题
在配置文件中加入如下,并重启 mysql
[mysqld]
skip-name-resolve
解释:
skip-name-resolve:跳过域名解析

重启mysql,进入容器内部,看下配置文件是否在容器内部生效:
在这里插入图片描述

3、通过容器的 mysql 命令行工具连接

docker exec -it mysql mysql -uroot -proot

4、设置 root 远程访问

grant all privileges on . to ‘root’@‘%’ identified by ‘root’ with grant option;
flush privileges;

5、进入容器文件系统

docker exec -it mysql /bin/bash

4、docker 安装 redis

1、下载镜像文件

docker pull redis

2、创建实例并启动(需先在linux中创建redis.conf文件,使可以映射,保证挂载的时候有配置文件)

mkdir -p /mydata/redis/conf 
touch /mydata/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 \
-d redis redis-server /etc/redis/redis.conf

redis 自描述文件:(需要配置持久化)
https://raw.githubusercontent.com/antirez/redis/4.0/redis.conf
在这里插入图片描述

3、使用 redis 镜像执行 redis-cli 命令连接

docker exec -it redis redis-cli
在这里插入图片描述

5、开发环境统一

1、Maven(修改maven的setting.xml文件)

配置阿里云镜像
<mirrors>
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>central</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
</mirrors>配置 jdk1.8 编译项目
<profiles>
<profile>
<id>jdk-1.8</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>1.8</jdk>
</activation>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
</properties>
</profile>
</profiles>

2、Idea&VsCode&webstorm

idea 安装 lombok、mybatisx 插件
Vscode 安装开发必备插件
Vetur —— 语法高亮、智能感知、Emmet 等
包含格式化功能, Alt+Shift+F (格式化全文),Ctrl+K Ctrl+F(格式化选中代码,两个 Ctrl需要同时按着)
EsLint —— 语法纠错
Auto Close Tag —— 自动闭合 HTML/XML 标签
Auto Rename Tag —— 自动完成另一侧标签的同步修改
JavaScript(ES6) code snippets — — ES6 语 法 智 能 提 示 以 及 快 速 输 入 , 除 js 外 还 支
持.ts,.jsx,.tsx,.html,.vue,省去了配置其支持各种包含 js 代码文件的时间
HTML CSS Support —— 让 html 标签上写 class 智能提示当前项目所支持的样式
HTML Snippets —— html 快速自动补全
Open in browser —— 浏览器快速打开
Live Server —— 以内嵌服务器方式打开
Chinese (Simplified) Language Pack for Visual Studio Code —— 中文语言包

3、安装配置 git

1、下载 git;https://git-scm.com
2、配置 git,进入 git bash

# 配置用户名
git config --global user.name "username" //(名字)
# 配置邮箱
git config --global user.email "username@email.com" //(注册账号时用的邮箱)

3、配置 ssh 免密登录
https://gitee.com/help/articles/4181#article-header0

进入 git bash;使用:ssh-keygen -t rsa -C "xxxxx@xxxxx.com"命令。 连续三次回车。
一般用户目录下会有
或者 cat ~/.ssh/id_rsa.pub
登录进入 gitee,在设置里面找到 SSH KEY 将.pub 文件的内容粘贴进去
使用 ssh -T git@gitee.com 测试是否成功即可
Git+码云教程 https://gitee.com/help/articles/4104

6、创建微服务项目

1、从 gitee 初始化一个项目

在这里插入图片描述

使用idea进行版本控制下载该项目。
使用spring 模板创建商品模块,项目是一个微服务,项目需要导入两个必要的两个组件,一个是web中的Spring Web,另一个是Spring Cloud Rounting 中的 OpenFeign进行微服务之间互相调用
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

2、商品服务、仓储服务、订单服务、优惠券服务、用户服务

共同:
1)、web、openfeign
2)、每一个服务,包名 com.wxn.zhenyanmall.xxx(product/order/ware/coupon/member)
3)、模块名:zhenyanmall-coupon

在这里插入图片描述

3、将zhenyanmall作为总项目,随便从子项目里面拷贝一个pom.xml到外面,修改配置

在这里插入图片描述

4、添加.gitignore忽略版本管理文件

在这里插入图片描述

5、idea安装gitee插件可以将代码提交到gitee。

7、数据库初始化

所有的表设计,都不建立外键,因为表数据量太多,做外键关联是一个非常耗性能的操作,没插入、删除、修改一条数据,数据库都要对外键进行检查,保证数据库的一致性和完整性。
用powerDesigner打开数据库,拷贝出sql语句,建库建表。
连接虚拟机中的数据库,将mysql和redis设置为虚拟机重启,mysql和redis也自动重启,在实际项目中也一样,服务器重启,或者mysql和redis挂掉,都要自动重启,如果无法重启,则需要报警,人工手动处理。
虚拟机配置重启命令:
sudo docker update mysql --restart=always
sudo docker update redis --restart=always
在这里插入图片描述
创建数据库,所有的都是utf-8。
在这里插入图片描述
执行建表语句,建表语句可在资源下载里面获取。

8、人人开源搭建后台管理系统

按照微服务划分,我们需要创建一个后台管理系统,来操作后台管理的各个功能,后台管理系统也是前后分离的,需要编写前端代码,如果从头到尾搭建一个后台管理系统,来写前端和后端,是一个非常耗时的工作,所以我们可以用一个搭建好的脚手架工程,我们稍加改造就能作为一个后台管理系统让我们来使用,那我们就可以使用码云上的人人开源项目 。
在这里插入图片描述
进到主页
在这里插入图片描述
renren-fast是一个后台管理系统,renren-fast-vue是后台管理系统的前端项目,两个配套起来作为一个前后端分离的后台管理系统。
renren-security也是后台管理系统,做的不是前后分离的,是将我们的页面使用framemark写在一个工程里面。
renren-generator是一个代码生成器,可以帮我们在线生成entity、xml、dao、service、vue、sql代码,减少70%以上的开发任务。

1、将renren-fast、renren-fast-vue 克隆下来

将renren-fast中的.git文件删掉,复制到我们的项目里面,也加入到module里面。
在这里插入图片描述
在这里插入图片描述
将renren-fast的需要的库表建好,我们用的是mysql作为业务库,所以只需要mysql的脚本即可,库命名为admin
在这里插入图片描述
然后表创建好之后,需要在renren-fast修改一些配置文件
application.yml:指定了我们的端口号、访问项目名地址、有没有使用redis.
我们主要修改数据库,主要使用开发环境,也就是dev,打开application-dev.yml配置文件
在这里插入图片描述
修改数据库的地址,库名、账号、密码
在这里插入图片描述
然后启动renren-fast后台
在这里插入图片描述

2、将renren-fast-vue中的.git文件删掉,用webstorm打开。

安装前端开发需要依赖的环境。

1、安装node.js和下载依赖

Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。
http://nodejs.cn/api/
我们关注与 node.js 的 npm 功能就行;
NPM 是随同 NodeJS 一起安装的包管理工具,JavaScript-NPM,Java-Maven;
1)、官网下载安装 node.js,并使用 node -v 检查版本
2)、配置 npm 使用淘宝镜像
npm config set registry http://registry.npm.taobao.org/
3)、大家如果 npm install 安装依赖出现 chromedriver 之类问题,先在项目里运行下面命令
npm install chromedriver --chromedriver_cdnurl=http://cdn.npm.taobao.org/dist/chromedriver
然后再运行 npm install 下载依赖
在这里插入图片描述

2、启动前端项目

npm run dev
在这里插入图片描述
在这里插入图片描述
默认账号密码:admin admin
在这里插入图片描述
搭建前后端项目,并且已经联调通过,下面使用人人开源的代码生成器 renren-generator为每一个微服务生成增删改查代码。

3、使用人人开源的代码生成器为每一个微服务生成增删改查代码

1)下载代码生成器

git clone https://gitee.com/renrenio/renren-generator.git

2)删除.git
3)拷贝到项目中
4)加入module里面
5)修改application.yml,数据库连接信息(需要生成哪个数据库代码,则连接哪个数据库)
在这里插入图片描述
6)修改生成的模块名、包名、作者、邮箱、表名前缀在这里插入图片描述
7)启动代码生成器项目
在这里插入图片描述
8)访问http://localhost:80

在这里插入图片描述
9)选择对应的表,生成代码
在这里插入图片描述
10)生成压缩包
在这里插入图片描述
11)解压文件,可以看到生成的文件
在这里插入图片描述
12)将文件拷贝到对应模块,就是main代码拷贝过去
在这里插入图片描述
13)修改报错文件
在逆向生成的代码中,controller、service、实体类、注解、公共模块都有报错。
创建一个common,将微服务需要的每一个东西,都放到里面
在这里插入图片描述
14)每个模块都配置一下依赖zhenyanmall-common
在这里插入图片描述
15)在zhenyanmall-common添加依赖和工具类解决报错
在这里插入图片描述
mybatis-plus 解决dao层报错
lombok 解决entry中的Data注解报错 @Data是给实体类属性自动添加getter和setter方法
可以从https://mvnrepository.com/ 查找依赖
比如httpcomponents

16)使用逆向工程的时候,可以修改模板
可以去掉RequiresPermissions注解
在这里插入图片描述
再重新生成Controller,将Controller替换掉,(在第一次生成的时候就可以注释掉)
17)导入mysql驱动
18)解决common报错
删除XssHttpServletRequestWrapper (防止脚本攻击) 使用spring security解决
19)在product配置数据源连接
创建application.yml文件
20)配置Mybatis-Plus
21)测试商品的增删改查

4、为每个微服务生成代码和配置并解决报错

配置完成后,启动每个项目,然后调用一下接口,看看是否能调用成功。
properties和yml同时存在,properties先加载,yml后加载。
如果无法启动,说明pom依赖添加有问题,需要认真检查,最可能的是。
检查是否正常退出
控制台输出 :Process finished with exit code 0 正常退出添加一下依赖即可

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId>
</dependency>

如果是端口冲突,需要重新配置一下端口
在这里插入图片描述

在这里插入图片描述

1.启动时no active profile set, falling back to default profiles: default

在新启动一个spring boot项目时候会发现这样一条信息no active profile set, falling back to default profiles: default。为什么会出现这样的提示呢,我们先来看看profile,profile是Spring对不同环境提供不同配置功能的支持,可以通过激活、 指定参数等方式快速切换环境Profile。举个例子我们在开发,测试,生产用到的配置是不同的,那么通过profile就可以帮我们指定对应的环境用对应的配置,那么如何来指定呢?

2.多profile文件形式:

– 格式:application-{profile}.properties/yml: application-dev.properties、application-prod.properties .我们可以通过application-{profile}.properties/yml的方式指定并激活不同的profile配置。

3.多profile配置激活

先给出我们需要配置的文件目录,这里举例是yml文件,如下图所示。然后具体有以下5种方法可以来指定并激活我们需要的配置。
在这里插入图片描述

3.1通过properties文件指定

比如我们要使用application-dev.yml的配置,那么在application.properties中写上spring.profiles.active=dev,那么我们的application-dev.yml的配置就被激活了,那么如何测试结果呢,很简单,我们在application-dev.yml指定服务启动端口,启动spring boot 服务,看看是不是8081端口就好了。
可以看到The following profiles are active: dev,然后启动的端口是8081说明我们想要的配置生效了,指定其他配置比如test,只要修改spring.profiles.active=test。

3.2通过yml文档块指定

在yml配置文件中通过—的形式来划分文档块,通过图中active: xx (注意中间有个空格,这是yml的基本格式)指定的值来激活相应的配置文件。

比如active: dev,那么application-dev.yml这个配置文件被激活。
在这里插入图片描述

3.3通过configuration中的Program agruments指定

在configuration中的program arguments 中写入–spring.profiles.active=dev。
在这里插入图片描述

3.4通过configuration中的VM options指定

在configuration中的VM options配置项中填写:-Dspring.profiles.active=dev.
在这里插入图片描述

3.5通过configuration中的Enviroment variables指定

在configuration中的Enviroment variables 配置项上写入:spring.profiles.active=dev
在这里插入图片描述

4.配置优先顺序

program arguments > VM options > Enviroment variables >proties 文件> yml文件

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/2710.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PyCharm 常用快捷键

目录 1、代码编辑快捷键 2、搜索/替换快捷键 3、代码运行快捷键 4、代码调试快捷键 5、应用搜索快捷键 6、代码重构快捷键 7、动态模块快捷键 8、导航快捷键 9、通用快捷键 1、代码编辑快捷键 序号快捷键作用1CTRLALTSPACE快速导入任意类2CTRLSHIFTENTER代码补全3SHI…

[杂谈]反义词汇总

在看英文资料的时候&#xff0c;有意的总结了一下反义词&#xff1a; https://blog.csdn.net/qq_36428903/article/details/124958575 有些反义词总是能在一个句子里同时出现。就像中文里的经典成语&#xff1a;自相矛盾&#xff0c;左右逢源&#xff0c;七上八下……。这些相…

$.getScript()方法获取js文件

通过$.getScript(‘xxxx.js’)获取xxxx.js文件&#xff0c;这时的ajax是一个get请求的状态&#xff0c;如果进行了入参data的赋值那么他就会跟在url后面,同理获取json文件&#xff0c;css文件。 一开始没想起这茬。。。

曲师大2023大一新生排位赛-B.Sort题解

题目描述 插入排序是一种非常常见且简单的排序算法。王同学是一名大一的新生&#xff0c;今天许师哥刚刚在上课的时候讲了插入排序算法。 假设比较两个元素的时间为 &#xff0c;则插入排序可以以 的时间复杂度完成长度为 n&#xfffd; 的数组的排序。不妨假设这 n 个数字分…

如何在PADS Logic中查找器件

PADS Logic提供类似于Windows的查找功能&#xff0c;可以进行器件的查找。 &#xff08;1&#xff09;在Logic设计界面中&#xff0c;将菜单显示中的“选择工具栏”进行打开&#xff0c;如图1所示&#xff0c;会弹出对应的“选择工具栏”的分栏菜单选项&#xff0c;如图2所示。…

IDE /字符串 /字符编码与文本文件(如cpp源代码文件)

文章目录 概述文本编辑器如何识别文件的编码格式优先推测使用了UTF-8编码&#xff1f;字符编码的BOM字节序标记重分析各文本编辑器下的测试效果Qt Creator的文本编辑器系统记事本VS的文本编辑器Notepad 编译器与代码文件的字符编码ANSI编码其他 概述 前期在整理 《IDE/VS项目属…

大数据存储架构详解:数据仓库、数据集市、数据湖、数据网格、湖仓一体

前言 本文隶属于专栏《大数据理论体系》&#xff0c;该专栏为笔者原创&#xff0c;引用请注明来源&#xff0c;不足和错误之处请在评论区帮忙指出&#xff0c;谢谢&#xff01; 本专栏目录结构和参考文献请见大数据理论体系 思维导图 数据仓库 数据仓库是一个面向主题的&…

如何提升环境、生态、水文、土地、土壤、农业、大气等领域的数据分析能力

专题一、空间数据获取与制图 1.1 软件安装与应用讲解 1.2 空间数据介绍 1.3海量空间数据下载 1.4 ArcGIS软件快速入门 1.5 Geodatabase地理数据库 专题二、ArcGIS专题地图制作 2.1专题地图制作规范 2.2 空间数据的准备与处理 2.3 空间数据可视化&#xff1a;地图符号与…

酷开科技以内容为核心打造OTT大屏营销投放新体系

如何打造“因地制宜”的营销策略&#xff0c;围绕内容场景&#xff0c;搭建更具效能的OTT大屏营销投放体系&#xff1f;是一个值得思考的问题。 酷开科技OTT大屏营销&#xff0c; 以营销内容为核心、通过更加立体化的沟通模式&#xff0c;创新性整合和打通多元资源&#xff0c…

数据结构--图的存储邻接表法

数据结构–图的存储邻接表法 邻接矩阵&#xff1a; 数组实现的顺序存储&#xff0c;空间复杂度高&#xff0c;不适合存储稀疏图 邻接表&#xff1a; 顺序链式存储 邻接表法&#xff08;顺序链式存储&#xff09; //边/弧 typedef struct ArcNode {int adjvex; //边/弧指向哪个…

echarts 单数据,平滑曲线柱状图显示

var myChart echarts.init(document.getElementById(main)); let namelist [23/01, 23/02, 23/03, 23/04, 23/05, 23/06, YTD] let planList [10.9, 22.6, 15.6, 14.4, 12.0, 12.3, 14.6] let target 14 // 指定图表的配置项和数据 var option { tooltip: { },//提示语 xA…

AI 与自动化:更多的自动化,全新的自动化方式?

每一次 ChatGPT 的更新&#xff0c;都会给我们带来大量新的能力&#xff0c;这些能力往往会逐步应用在改变我们现有工作流程上&#xff0c;因此我是比较看好这一波 AI 在自动化&#xff08;RPA&#xff09;领域的价值的&#xff0c;不过要将一个新技术真正应用直至取代复杂的工…

wampserver的mysql8.0版本在my.ini文件中加入skip_grant_tables无效等一系列问题。

背景&#xff1a;安装了新的wampserver之后&#xff0c;php版本mysql8.0.31&#xff0c;想打开phpadmin可视化管理页面&#xff0c;后来忘记密码了&#xff0c;报错&#xff1a;ERROR 1045 (28000): Access denied for user rootlocalhost (using password: No)&#xff0c;只能…

Linux搭建SVN环境(最新版)

最新版本号(svn-1.14) https://opensource.wandisco.com/centos/7 更新版本库 sudo tee /etc/yum.repos.d/wandisco-svn.repo <<-EOF [WandiscoSVN] nameWandisco SVN Repo baseurlhttp://opensource.wandisco.com/centos/$releasever/svn-1.14/RPMS/$basearch/ enabled…

Django中使用反向关系名称(related_name)解决由“多对多”关系引起的字段名字冲突问题引起的迁移命令报错。

当在模型中为关系字段添加了related_name参数后&#xff0c;您可以使用该参数指定的名称来引用反向关系。下面是一个简单的例子来说明如何引用反向关系。 假设您有以下两个模型&#xff1a; from django.db import modelsclass Author(models.Model):name models.CharField(…

Redis 从入门到精通【进阶篇】之高可用哨兵机制(Redis Sentinel)详解

文章目录 0.前言1. 原理详解1.1. 哨兵机制的组建1.1. 哨兵是如何知道从库的信息 1.2. 主库下线的判定1.3. 哨兵集群选举1.4. 故障的转移 2. 总结3. Redis从入门到精通系列文章4. Redis哨兵模式面试题4. 1. 什么是Redis的哨兵模式&#xff1f;4. 2. 哨兵模式的优点是什么&#x…

【redis】list类型命令简述

redis的list类型&#xff0c;可以存储双向链表作为value&#xff0c;key保留有head和tail指针可以指向双向链表的头和尾&#xff0c;因此可以直接从头或尾对list进行操作。 全部命令如下&#xff1a; 127.0.0.1:6379> help listBLMOVE source destination LEFT|RIGHT LEFT|…

CCF真题练习:202209-1如此编码

题目背景 某次测验后&#xff0c;顿顿老师在黑板上留下了一串数字 23333 便飘然而去。凝望着这个神秘数字&#xff0c;小 P 同学不禁陷入了沉思…… 题目描述 已知某次测验包含 n 道单项选择题&#xff0c;其中第 i 题&#xff08;1≤i≤n&#xff09;有 个选项&#xff0c;…

了解交换机接口的链路类型(access、trunk、hybrid)

上一个章节中讲到了vlan的作用及使用&#xff0c;这篇了解一下交换机接口的链路类型和什么情况下使用 vlan在数据包中是如何体现的&#xff0c;在上一篇的时候提到测试了一下&#xff0c;从PC1去访问PC4的时候&#xff0c;只从E0/0/2发送给了E0/0/3这是&#xff0c;因为两个接…

gogs的自定义配置

在 GOGS 下载并安装后&#xff0c;在程序目录下建立一个custom/conf/app.ini的配置文件&#xff0c;内容如下&#xff1a; APP_NAME Gogs # APP名字 RUN_USER git # 启动用户&#xff0c;设置后只能以此账号启动gogs RUN_MODE prod[database] DB_TYPE mysql HOST 1…