技术标签: linux android 开源项目学习 docker
这⾥下载的是 mysql-5.7.30-linux-glibc2.12-x86_64.tar.gz
安装包,并将其直接放在了 root⽬录下
卸载系统⾃带的MARIADB(如果有)
如果系统之前⾃带 Mariadb
,可以先卸载之。
⾸先查询已安装的 Mariadb
安装包:
rpm -qa|grep mariadb
将其均卸载之:
yum -y remove mariadb-server-5.5.56-2.el7.x86_64
yum -y remove mariadb-5.5.56-2.el7.x86_64
yum -y remove mariadb-devel-5.5.56-2.el7.x86_64
yum -y remove mariadb-libs-5.5.56-2.el7.x86_64
这里我使用的是mac系统安装的虚拟机,所以命令有所不一样
将上⾯准备好的 MySQL
安装包解压到 /usr/local/
⽬录,并重命名为 mysql
tar -zxvf /root/mysql-5.7.30-linux-glibc2.12-x86_64.tar.gz -C /usr/local/
mv mysql-5.7.30-linux-glibc2.12-x86_64 mysql
groupadd mysql
useradd -g mysql mysql
同时新建 /usr/local/mysql/data ⽬录,后续备⽤
[root@localhost mysql]# chown -R mysql:mysql ./
在 /etc
⽬录下新建 my.cnf
⽂件
写⼊如下简化配置:
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
socket=/var/lib/mysql/mysql.sock
[mysqld]
skip-name-resolve
#设置3306端⼝
port = 3306
socket=/var/lib/mysql/mysql.sock
# 设置mysql的安装⽬录
basedir=/usr/local/mysql
# 设置mysql数据库的数据的存放⽬录
datadir=/usr/local/mysql/data
# 允许最⼤连接数
max_connections=200
# 服务端使⽤的字符集默认为8⽐特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使⽤的默认存储引擎
default-storage-engine=INNODB
lower_case_table_names=1
max_allowed_packet=16M
同时使⽤如下命令创建 /var/lib/mysql
⽬录,并修改权限:
mkdir /var/lib/mysql
chmod 777 /var/lib/mysql
执⾏如下命令正式开始安装:
cd /usr/local/mysql
./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
注意:记住上⾯打印出来的 root 的密码,后⾯⾸次登陆需要使⽤
这里因为我需要aarch结构的文件才能执行,M系列芯片不能运行x86-64
得Mysql bin所以后续我将用Docker来实现
执⾏如下命令复制:
[root@localhost mysql]# cp ./support-files/mysql.server
/etc/init.d/mysqld
并修改 /etc/init.d/mysqld
,修改其 basedir 和 datadir 为实际对应⽬录:
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
⾸先增加 mysqld 服务控制脚本执⾏权限:
chmod +x /etc/init.d/mysqld
同时将 mysqld 服务加⼊到系统服务:
chkconfig --add mysqld
最后检查 mysqld 服务是否已经⽣效即可:
chkconfig --list mysqld
这样就表明 mysqld
服务已经⽣效了,在2、3、4、5运⾏级别随系统启动⽽⾃动启动,以后可以直接使⽤ service
命令控制 mysql
的启停。
直接执⾏:
service mysqld start
这样⽅便以后在任意⽬录上都可以使⽤ mysql 提供的命令。
编辑 ~/.bash_profile ⽂件,在⽂件末尾处追加如下信息:
export PATH=$PATH:/usr/local/mysql/bin
最后执⾏如下命令使环境变量⽣效
source ~/.bash_profile
以 root 账户登录 mysql ,使⽤上⽂安装完成提示的密码进⾏登⼊
mysql -u root -p
接下来修改ROOT账户密码
在mysql的命令⾏执⾏如下命令即可,密码可以换成你想⽤的密码即可:
mysql>alter user user() identified by "111111";
mysql>flush privileges;
mysql> use mysql;
mysql> update user set user.Host='%' where user.User='root';
mysql> flush privileges;
这⾥下载的是 redis-5.0.8.tar.gz
安装包,并将其直接放在了 root ⽬录下
解压安装包
cd /usr/local/
mkdir redis
cd redis
将 Redis 安装包解压到 /usr/local/redis
中即可
[root@localhost redis]# tar zxvf /root/redis-5.0.8.tar.gz -C ./
解压完之后, /usr/local/redis
⽬录中会出现⼀个 redis-5.0.8 的⽬录
编译并安装
cd redis-5.0.8/
make && make install
将 REDIS 安装为系统服务并后台启动
进⼊ utils ⽬录,并执⾏如下脚本即可:
[root@localhost redis-5.0.8]# cd utils/
[root@localhost utils]# ./install_server.sh
此处我全部选择的默认配置即可,有需要可以按需定制
直接执⾏如下命令来查看Redis的启动结果:
systemctl status redis_6379.service
启动REDIS客户端并测试
启动⾃带的 redis-cli 客户端,测试通过:
但是此时只能在本地访问,⽆法远程连接,因此还需要做部分设置
编辑 redis 配置⽂件
vim /etc/redis/6379.conf
将 bind 127.0.0.1 修改为 0.0.0.0
然后重启 Redis 服务即可:
systemctl restart redis_6379.service
编辑 redis
配置⽂件
vim /etc/redis/6379.conf
找到如下内容:
#requirepass foobared
去掉注释,将 foobared 修改为⾃⼰想要的密码,保存即可。
requirepass codesheep
保存,重启 Redis 服务即可
systemctl restart redis_6379.service
这样后续的访问需要先输⼊密码认证通过⽅可:
代码仓库https://gitee.com/y_project/RuoYi-Vue 这是一个若依前后端分离项目。
在本地数据库新建一个库,ry-vue
在图形化界面中执行若依项目中的两个SQL文件
在本地新建一个log文件夹,并将若依的日志指向调整为新建的目录
这里插入一个Homebrew的安装https://zhuanlan.zhihu.com/p/111014448
Homebrew安装命令:
/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"
安装Redis
brew install redis
启动redis
brew services start redis
查看一下版本(复制如下代码到终端运行):
redis-server
查看redis进程
ps axu | grep redis
停止redis
brew services stop redis
本地配置好redis、mysql、日志路径之后Redis可以正常启动
共计3台服务器,分别是腾讯云、华为云、天翼云三台服务器。其中华为云部署前端以及提供MYSQL与Redis服务。另外两台部署后端服务。
华为云安装redis、MySQL
mysql 初始密码Mr%d;N?ce4<l
这里华为云需要修改入方向规则
代码中需要修改的地方
全部的encode地方加上charset
注意华为云6379接口要开放
我把ruoyi-ui的前段代码打包
上传到服务器中
然后在workspace
中解压代码
华为云要安装nginx
并且放开80端口
华为云中修改nginx
文件
重启nginx
之后前段就可以访问了
/usr/local/nginx/sbin/nginx -s reload
因为是SpringBOOT项目内置了Tomcat
直接打jar
包。上图是两种打包方式都可以。第一个图先clean
后package
。
jar
包位置。
这里不打war包了,还要安装tomcat,需要打war包可以看视频(最上面的)
[root@VM-8-7-centos ruoyi]# pwd
/root/workspace/ruoyi
[root@VM-8-7-centos ruoyi]# nohup java -jar ruoyi-admin.jar &
虽然前后端都发布了,但是前段的nginx代理还未配置。也就是说前段现在没有访问到后端接口
在华为云中修改了nginx
并重启了nginx
这里腾讯云记得打开8080端口
为了集群部署,我们还是需要修改nginx
,并设置天翼云权重为3,腾讯云的为5
再次将nginx reload一下,当前天翼云的后端服务也运行起来了。
查看天翼云
这里天翼云有个坑,8080端口不备案不开放,我重新换成了8081端口
这里算是部署好了前后端
为了验证效果,以及看一下Nginx转发。当我输入错误验证码时可以看到多次访问的是腾讯服务器因为它的权重更高
Docker:CentOS7安装Docker(含Docker安装):https://blog.csdn.net/Blue_Pepsi_Cola/article/details/134069650
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
首先要安装一个yum工具
yum install -y yum-utils
安装成功后,执行命令,配置Docker的yum源:
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
vim /etc/docker/daemon.json
在其中加⼊加速镜像源地址即可(这⾥使⽤的是 ⽹易 的加速源,其他像 阿⾥云 、 DaoCloud 这些也都提供加速源,按需选择即可):
{
"registry-mirrors": ["http://hub-mirror.c.163.com"]
}
加完加速地址后,重新加载配置⽂件,重启 docker 服务即可:
systemctl daemon-reload
systemctl restart docker.service
这里我已经安装过mysql了,不熟悉如何Docker安装mysql可以看专栏。
我目前Docker正在run的容器有
此处我发现时间不准确。通过将NTP服务代理为阿里云解决。
[root@node ~]# vim /etc/ntp.conf
[root@node ~]# grep server /etc/ntp.conf
# Use public servers from the pool.ntp.org project.
#server 0.centos.pool.ntp.org iburst
server ntp.aliyun.com iburst
#broadcast 192.168.1.255 autokey # broadcast server
#broadcast 224.0.1.1 autokey # multicast server
#manycastserver 239.255.254.254 # manycast server
先将原来的服务停止,并修改了日志路径。
移除jar包
再重新打包之后上传到天翼云,还有Dockerfile
FROM openjdk:8u312-jre-slim-buster
WORKDIR /data/cycube/
COPY ruoyi-admin.jar /data/cycube/
EXPOSE 8081
ENV APP_PORT=8081
ENV TZ=Asia/Shanghai
ENV JAVA_OPTS="-Xms512m -Xmx1024m -Xss256k -XX:MetaspaceSize=512m -XX:MaxMetaspaceSize=512m -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC -XX:+UseCGroupMemoryLimitForHeap -XX:+HeapDumpOnOutOfMemoryError -Djava.security.egd=file:/dev/./urandom"
ENV EXT_ARG="-Dserver.port=8081 -Dspring.cloud.nacos.config.enabled=false -Dspring.cloud.nacos.discovery.server-addr=svc-nacos:8848 -Dspring.cloud.nacos.discovery.namespace=public"
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
ENTRYPOINT java $JAVA_OPTS $EXT_ARG -Dserver.port=$APP_PORT -jar /data/cycube/ruoyi-admin.jar
# 开始构建
docker build -t ruoyi:1.0 .
命令说明:
然后尝试运行该镜像:
docker run -d --name ruoyi -p 8081:8081 ruoyi:1.0
查看日志可以看到访问前段登录,可以正常的登录。
[root@rcodunix9knh8vfc ruoyi]# docker logs ruoyi
docker logs -f --tail 10 ruoyi
1.同步阿里云时间 https://www.cnblogs.com/liulianzhen99/articles/17637056.html
2.Mac 如何安装 Homebrew
3.Homebrew安装以及使用Redis
4.黑马Docker笔记 https://b11et3un53m.feishu.cn/wiki/MWQIw4Zvhil0I5ktPHwcoqZdnec
文章浏览阅读8.3k次,点赞5次,收藏12次。作为 admin 用户,请求认证令牌,输入如下命令openstack --os-auth-url http://controller:35357/v3 --os-project-domain-name default --os-user-domain-name default --os-project-name admin --os-username admin token issue报错Failed to discover available identity versions whe._caused by newconnectionerror('
文章浏览阅读4.5k次。可以在桌面安装云顷还原系统软件,利用软件中的网络对拷功能部署批量对拷环境,进行电脑教室软件的批量对拷安装与增量对拷安装。_教室电脑 一起装软件
文章浏览阅读3.1k次,点赞5次,收藏7次。原文链接:https://www.ikaze.cn/article/43写这篇博文的起因是,我在论坛宣传我开源的新项目YTask(go语言异步任务队列)时,有小伙伴在下面回了一句“为什么不用nsq?”。这使我想起,我在和同事介绍celery时同事说了一句“这不就是kafka吗?”。那么YTask和nsq,celery和kafka?他们之间到底有什么不同呢?下面我结合自己的理解。简单的分析一..._任务队列和消息队列
文章浏览阅读1.5k次。1,MyUtuils.kt将被调用的文件class MyUtils { fun show(info:String){ println(info) }}fun show(info:String){ println(info)}2,Java文件调用该类,ClientJava.javapublic class ClientJava { public static void main(String[] args) { /** _java 调用kt 对象
文章浏览阅读6.6k次,点赞4次,收藏4次。在进行UDP编程的时候,我们最容易想到的问题就是,一次发送多少bytes好? 当然,这个没有唯一答案,相对于不同的系统,不同的要求,其得到的答案是不一样的,我这里仅对 像ICQ一类的发送聊天消息的情况作分析,对于其他情况,你或许也能得到一点帮助: 首先,我们知道,TCP/IP通常被认为是一个四层协议系统,包括链路层,网络层,运输层,应用层. UDP属于运输层_最大请求报文大小
文章浏览阅读10w+次,点赞14次,收藏18次。代码如下:for /l %a in (0,0,1) do echo hello,world粘贴在cmd命令行窗口中,回车即可无限死循环输出hello,world。如果需要停止,可以按ctrl+c中断。解析通用形式:for /l %variable IN (start,step,end) DO command [command-parameters] 该集表示以增量形式从start到end的一个数字序列。具体到第一段代码,如果是 (0,0,1) 就是从0开始,每次增_cmd装比代码无限循环
主要梳理mybatis多表及动态使用
文章浏览阅读2.9w次,点赞98次,收藏777次。文章目录Qt 多线程操作2.线程类QThread3.多线程使用:方式一4.多线程使用:方式二5.Qt 线程池的使用Qt 多线程操作应用程序在某些情况下需要处理比较复杂的逻辑, 如果只有一个线程去处理,就会导致窗口卡顿,无法处理用户的相关操作。这种情况下就需要使用多线程,其中一个线程处理窗口事件,其他线程进行逻辑运算,多个线程各司其职,不仅可以提高用户体验还可以提升程序的执行效率。Qt中使用多线程需要注意:Qt的默认线程为窗口线程(主线程):负责窗口事件处理或窗口控件数据的更新;子线程负责后台的业_qt 多线程
【代码】GQA分组注意力机制。
文章浏览阅读218次。1.官方的建议1.1 电池续航时间优化(Optimizing Battery Life)参考文章:优化电池使用时间已有中文的详细说明,此处做简要说明:(1)监控电池电量和充电状态(Monitoring the Battery Level and Charging State)通过系统广播,获取充电状态和电池电量的变化来调整数据更新等操作;如在充电时,更新数据及应用,在低电量时,减少更新频..._com.tencent.mm:exdevice
文章浏览阅读818次,点赞14次,收藏9次。计算e1=2.718,e5=148.413,e3=20.086,e1+e5+e3=171.217。“人/B 们/E 常/S 说/S 生/B 活/E 是/S 一/S 部/S 教/B 科/M 书/E ”给一段文字做分词标注,标注每个字对应的标号。图中是双向的三层 RNNs,堆叠多层的RNN网络,可以增加模型的参数,提高模型的拟合。双向的 RNN 是同时考虑“过去”和“未来”的信息,输入(黑色点)沿着黑色的实线箭。比如标签0将表示为([1,0,0,0,0,0,0,0,0,0]),标签3将表示为。
文章浏览阅读513次,点赞9次,收藏10次。无法加载DLL"halconxl": 找不到指定的模块。(异常来自HRESULT:0X8007007E)。在exe安装目录中中添加halconxl.dll文件继续运行就了。_c#如何免安装halcon12