若依前后端分离版开发入门
基础环境: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
若依入门
后端
创建数据库ry-vue 执行sql文件
application-druid.yml数据库配置文件
代码架构分析
Admin模块-controller
Common-公共组件工具类
framework-第三方框架及配置
ruoyi-generator代码生成器
ruoyi-quartz定时任务
ruoyi-system-CRUD
配置文件
文件路径
# 文件路径 示例( Windows配置D:/ruoyi/uploadPath,Linux配/home/ruoyi/uploadPath)
profile: D:/ruoyi/uploadPath
日志存放路径
数据源配置
Druid数据监控
接口返回值-JSON
TableDaraInfo-分页列表
AjaxResult-基本添加、编辑、单个查询、删除
Void-导出、下载
前端
DevServer
Target指向后端接口
开发环境配置.env.development
cd ruoyi-ui
npm install
npm run dev
实操
核对字段
生成代码
执行SQL生成菜单
数字字典
修改图标
1.若依修改主界面图标
图片路径: /src/assets/logo/logo.png
直接将想要替换的png格式图片将其替换即可,图片大小建议为60*60
2.若依修改主界面文字
文件路径:/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.若依修改页面上方图标
图标路径:/public/favicon.ico
直接替换即可,推荐尺寸64*64
4.若依修改页面上方文字
文件目录:
/.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.若依登录页面文字修改
文件路径:/src/views/login.vue
// login.vue
<h3 class="title">若依后台管理系统</h3> //找到此标签修改即可