若依前后端分离版开发入门

基础环境:JDK1.8+mysql+Redis+Maven+Vue

本次Docker部署mysql+Redis

基础环境安装

Centos开放防火墙端口

查看防火墙状态

sudo systemctl status firewalld

启动防火墙

sudo systemctl start firewalld

停止防火墙

sudo systemctl stop firewalld

查看防火墙已经开放的端口

firewall-cmd --list-port

添加开放指定端口

firewall-cmd --zone=public --add-port=80/tcp --permanent

firewall-cmd --zone=public --add-port=3306/tcp --permanent

设置完成后要重新加载防火墙

firewall-cmd --reload

Centos更换阿里云源

所遇问题

Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=os&infra=stock error was

14: curl#6 - “Could not resolve host: mirrorlist.centos.org; Unknown error”

第一步,将原来的目录改个名,晾到一边

mv /etc/yum.repos.d /etc/yum.repos.d-bak

第二步:原来的目录还得再恢复

mkdir /etc/yum.repos.d

第三步:下载阿里云的yum源配置

cd /etc/yum.repos.d

wget http://mirrors.aliyun.com/repo/Centos-7.repo

第四步:清除yum原来的缓存

yum clean all

//注意clean与all之间还有一个空格

第五步:查看这个软件源中有多少软件包

[root@node2 yum.repos.d]# yum repolist

[root@node2 yum.repos.d]# yum -y install ntp

安装docker

https://www.runoob.com/docker/centos-docker-install.html

阿里云镜像加速器https://<你的ID>.mirror.aliyuncs.com

官网地址https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors

加载重启docker

systemctl daemon-reload

systemctl restart docker

查看是否成功

docker info

Docker拉取镜像失败?报connect: connection refused

?

{

"registry-mirrors": [ "https://cr.console.aliyun.com","https://docker.m.daocloud.io","https://public.ecr.aws","https://dockerhub.timeweb.cloud"

]

}

开机启动

docker update --restart=always 容器ID

取消

docker update --restart=no 容器ID

docker部署Mysql

1、 创建本地mysql配置文件

mkdir -p /opt/mysql/log

mkdir -p /opt/mysql/data

mkdir -p /opt/mysql/conf

cd /opt/mysql/conf

touch my.config

[mysql]

#设置mysql客户端默认字符集

default-character-set=UTF8MB4

[mysqld]

#设置3306端口

port=3306

#允许最大连接数

max_connections=200

#允许连接失败的次数

max_connect_errors=10

#默认使用“mysql_native_password”插件认证

default_authentication_plugin=mysql_native_password

#服务端使用的字符集默认为8比特编码的latin1字符集

character-set-server=UTF8MB4

#开启查询缓存

explicit_defaults_for_timestamp=true

#创建新表时将使用的默认存储引擎

default-storage-engine=INNODB

#等待超时时间秒

wait_timeout=60

#交互式连接超时时间秒

interactive-timeout=600

secure_file_priv=/var/lib/mysql

[client]

default-character-set=UTF8MB4

docker部署mysql

docker pull mysql:5.7

docker images

运行镜像

docker run -d -p 3306:3306 --restart=always --privileged=true -v /opt/mysql/log:/var/log/mysql -v /opt/mysql/data:/var/lib/mysql -v /opt/mysql/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=123456 --name mysql mysql:5.7

 进入容器

docker ps

docker exec -it 9abe42c59a10 /bin/bash

mysql -u root -p

show databases;

SELECT VERSION();

mysql数据库开发远程访问

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';

FLUSH PRIVILEGES;

从 MySQL 8.0 开始,mysql_native_password 插件已经被弃用,默认采用 caching_sha2_password 插件。

ALTER USER 'root'@'%' IDENTIFIED WITH caching_sha2_password BY 'root';

--privileged 允许挂载数据卷,默认是读写权限rw

-d:以后台方式运行实例,(退出容器mysql依旧运行)

配置端口映射:

-p 3306:3306 指定宿主机器3306 :docker容器3306端口 映射。

mysql数据卷挂载解读:

1.日志文件挂载 :-v /data/dockerData/mysql/logs:/logs ()

将容器中的日志文件夹 /var/log/mysql 挂载到 宿主机对应的 /mydata/mysql 文件夹中。

2.数据文件挂载: -v /data/dockerData/mysql/data:/var/lib/mysql

将容器中的数据文件夹 /var/lib/mysql 挂载到宿主机对应的 /mydata/mysql/data 文件夹中。

3.mysql 配置文件挂载:-v /data/dockerData/mysql/conf/my.config:/etc/mysql/my.config

将容器的配置文件夹etc/mysql/my.config挂载到宿主机对应的 /data/dockerData/mysql/conf/my.config 文件夹中。

设置数据库root的密码:

MYSQL_ROOT_PASSWORD=数据库密码

设置mysql容器名称:

--name mysql5.7

c20987f18b13 :指定用这个镜像来创建运行实例。

所遇问题

ERROR 1524 (HY000): Plugin 'mysql_native_password' is not loaded

SHOW PLUGINS;

#安装插件

INSTALL PLUGIN auth_socket SONAME 'auth_socket.so';

更改用户的认证方法

ALTER USER 'root'@'%' IDENTIFIED WITH auth_socket;

替换root为你的实际用户名
然后我们在重新执行ALTER USER 'root'@'%' IDENTIFIED WITH auth_socket BY '123456';

docker部署redis

一、拉取镜像

docker pull redis:7.0.12

二、 创建 Redis 相关目录

mkdir -p /opt/redis/{conf,data,log}

touch /opt/redis/log/redis.log

touch /opt/redis/conf/redis.conf

三、 启动 Redis 容器

docker run -p 6379:6379 --name redis -d redis:7.0.12

# 拷贝文件

docker cp redis:/data /opt/redis

docker cp redis:/etc/redis.log /opt/redis/log

docker cp redis:/etc/redis/redis.conf /opt/redis/conf

# 授权文件夹

chmod -R 777 /opt/redis/conf/redis.conf /opt/redis/log/redis.log /opt/redis/data

# 删除容器

docker rm -f redis

相关参数解释 :

docker run:这是 Docker 的命令,用于创建并运行一个新的容器。

--name redis:这个参数设置了容器的名称为 redis,这样可以更容易地管理和访问该容器。

-p 6379:6379:这表示端口映射,将宿主机的 6379 端口映射到容器的 6379 端口。

--restart=always: 表示如果容器退出或 Docker 服务重启,Docker 都会自动重启该容器。

-v /data/redis/data:/data:这是一个卷映射,将宿主机的 /data/redis/data 目录映射到容器内的 /data 目录。这用于持久化数据,即使容器被删除,数据仍然保存在宿主机上。

-d:这个标志表示以守护进程模式运行容器,即容器将在后台运行。

redis:7.0.12:这是要运行的 Docker 镜像的名称和版本号。

redis-server /etc/redis/redis.conf:这是容器内运行的命令,redis-server 是启动 Redis 服务的命令,/etc/redis/redis.conf 指定了 Redis 服务使用的配置文件路径。

四、创建 Redis 容器

docker run --name redis \

-p 6379:6379 --restart=always \

-v /opt/redis/data:/data \

-v /opt/redis/log/redis.log:/etc/redis.log \

-v /opt/redis/conf:/etc/redis/redis.conf \

-d redis:7.0.12 redis-server /etc/redis/redis.conf

docker部署nginx

1、创建目录

mkdir -p /etc/nginx /opt/nginx/html

2、创建配置文件

touch /etc/nginx/nginx.conf

配置文件添加默认内容

worker_processes 1;

events {

worker_connections 1024;

}

http {

include mime.types;

default_type application/octet-stream;

sendfile on;

keepalive_timeout 65;

server {

listen 80;

server_name localhost;

location / {

root /usr/share/nginx/html;

index index.html index.htm;

}

error_page 500 502 503 504 /50x.html;

location = /50x.html {

root html;

}

}

}

拉取镜像nginx

docker pull nginx

4、启动容器

docker run -it -d --name nginx \

--restart=always \

-p 80:80 \

-v /etc/nginx/nginx.conf:/etc/nginx/nginx.conf \

-v /opt/nginx/html:/usr/share/nginx/html \

nginx:latest

两个-v 分别表示配置文件和nginx工作空间目录的映射,冒号左边是宿主机,右边是容器的,这样修改宿主机的配置文件和工作空间就可以同步到容器

5、查看 Nginx 启动日志

docker logs nginx

6、其它命令

启动

docker start nginx

关闭

docker stop nginx

重启

docker restart nginx

若依入门

后端

手拉手若依前后端分离版开发入门_docker

创建数据库ry-vue 执行sql文件

手拉手若依前后端分离版开发入门_mysql_02

手拉手若依前后端分离版开发入门_java_03

application-druid.yml数据库配置文件

手拉手若依前后端分离版开发入门_docker_04

代码架构分析

手拉手若依前后端分离版开发入门_redis_05

Admin模块-controller

手拉手若依前后端分离版开发入门_mysql_06

Common-公共组件工具类

手拉手若依前后端分离版开发入门_redis_07

framework-第三方框架及配置

手拉手若依前后端分离版开发入门_mysql_08

ruoyi-generator代码生成器

手拉手若依前后端分离版开发入门_java_09

ruoyi-quartz定时任务

手拉手若依前后端分离版开发入门_mysql_10

ruoyi-system-CRUD

手拉手若依前后端分离版开发入门_mysql_11

配置文件

手拉手若依前后端分离版开发入门_docker_12

文件路径

手拉手若依前后端分离版开发入门_docker_13

# 文件路径 示例( Windows配置D:/ruoyi/uploadPathLinux/home/ruoyi/uploadPath
profile: D:/ruoyi/uploadPath

日志存放路径

手拉手若依前后端分离版开发入门_java_14

数据源配置

手拉手若依前后端分离版开发入门_java_15

Druid数据监控

手拉手若依前后端分离版开发入门_mysql_16

接口返回值-JSON

TableDaraInfo-分页列表

AjaxResult-基本添加、编辑、单个查询、删除

Void-导出、下载

前端

DevServer

Target指向后端接口

手拉手若依前后端分离版开发入门_redis_17

开发环境配置.env.development

手拉手若依前后端分离版开发入门_redis_18

手拉手若依前后端分离版开发入门_java_19

cd ruoyi-ui

npm install

npm run dev

手拉手若依前后端分离版开发入门_java_20

实操

手拉手若依前后端分离版开发入门_redis_21

手拉手若依前后端分离版开发入门_docker_22

核对字段

手拉手若依前后端分离版开发入门_docker_23

生成代码

手拉手若依前后端分离版开发入门_java_24

执行SQL生成菜单

手拉手若依前后端分离版开发入门_docker_25

手拉手若依前后端分离版开发入门_mysql_26

手拉手若依前后端分离版开发入门_redis_27

手拉手若依前后端分离版开发入门_java_28

手拉手若依前后端分离版开发入门_redis_29

数字字典

手拉手若依前后端分离版开发入门_redis_30

修改图标

1.若依修改主界面图标

图片路径: /src/assets/logo/logo.png

直接将想要替换的png格式图片将其替换即可,图片大小建议为60*60

2.若依修改主界面文字

手拉手若依前后端分离版开发入门_java_31

文件路径:/src/layout/components/Sidebar/Logo.vue

// js部分
<script>
import logoImg from '@/assets/logo/logo.png'
import variables from '@/assets/styles/variables.scss'
export default {
name: 'SidebarLogo',
props: {
collapse: {
type: Boolean,
required: true
}
},
computed: {
variables() {
return variables;
},
sideTheme() {
return this.$store.state.settings.sideTheme
}
},
data() {
return {
title: '若依管理系统', <-- 将其改为想要的标题即可
logo: logoImg
}
}
}
</script>

3.若依修改页面上方图标

手拉手若依前后端分离版开发入门_docker_32

图标路径:/public/favicon.ico

直接替换即可,推荐尺寸64*64

4.若依修改页面上方文字

手拉手若依前后端分离版开发入门_docker_32

文件目录:

/.env.development

/.env.production

/.env.staging

推荐全部修改,因为根据环境不同

//.env.development

# 页面标题

VUE_APP_TITLE = 若依管理系统 <-- 修改此处

# 开发环境配置

ENV = 'development'

# 腾逸商城管理系统/开发环境

VUE_APP_BASE_API = '/dev-api'

# 路由懒加载

VUE_CLI_BABEL_TRANSPILE_MODULES = true

5.若依登录页面文字修改

手拉手若依前后端分离版开发入门_mysql_34

文件路径:/src/views/login.vue

// login.vue

<h3 class="title">若依后台管理系统</h3> //找到此标签修改即可