一、阿里云服务器使用指南(搭建系统为Alibaba Cloud Linux 3.2104 LTS64位)
阿里云服务器免费申领地址:https://free.aliyun.com/
CentOS服务器署Springboot的java项目最简单操作步骤:https://blog.csdn.net/baidu_25797177/article/details/128568205
1.1.免费试用
1.2.修改密码
1.3.通过Workbench远程连接
1.4.安装宝塔面板
宝塔面板官网:https://www.bt.cn/new/download.html
1.5.Centos安装脚本
-y wget && wget -O install.sh https://download.bt.cn/install/install_6.0.sh && sh install.sh ed8484bec
1.6.Workbench远程输入命令
1.7.36426端口号加入安全组
1.8.访问宝塔Linux面板
1.9.成功界面
1.10.忘记密码修改页面
二、xshell访问远程服务器
2.1.下载软件并安装
xshell下载地址:https://www.xshell.com/zh/
2.2.登录注册
2.3.连接远程服务器
三、宝塔Linux面板使用指南
四、宝塔面板如何开通mysql外网连接?
https://www.31idc.com/helpcontent/346.html
4.1.首先放行mysql 的3306通讯端口
4.2.创建数据库时访问权限选择【所有人】
4.3.若您已创建数据库,需要修改,请打开phpMyAdmin
4.4.点击用户,并编辑指定用户的权限:
4.5.点击登陆信息一栏,修改Host信息为【任意主机】,再点击最下面的执行按钮即可!
此时,即可远程连接Mysql 。
五、安装Mysql
5.1.安装 mysql
1 把下载好的mysql安装包上传到linux服务器 (当前用的是mysql-5.6.45.tar.gz)
2 检查是否已经安装mysql
rpm -qa | grep mysql (如果已经安装了需先卸载)
rpm -e --nodeps mysql-libs-5.1.61-4.el6.x86_64 (卸载mysql 卸载版本名称以实际的为准)
[root@iZbp11wm28qklt6r0hnpaeZ]# rpm -qa | grep mysql
mysql-common-8.0.32-1.0.2.al8.x86_64
mysql-libs-8.0.32-1.0.2.al8.x86_64
bt-mysql56-5.6.50-1.el8.x86_64
[root@iZbp11wm28qklt6r0hnpaeZ mysql]# rpm -e --nodeps mysql-libs-8.0.32-1.0.2.al8.x86_64
[root@iZbp11wm28qklt6r0hnpaeZ mysql]#
[root@iZbp11wm28qklt6r0hnpaeZ mysql]# rpm -qa | grep mysql
mysql-common-8.0.32-1.0.2.al8.x86_64
bt-mysql56-5.6.50-1.el8.x86_64
[root@iZbp11wm28qklt6r0hnpaeZ mysql]# rpm -e --nodeps bt-mysql56-5.6.50-1.el8.x86_64
[root@iZbp11wm28qklt6r0hnpaeZ mysql]# rpm -qa | grep mysql
mysql-common-8.0.32-1.0.2.al8.x86_64
[root@iZbp11wm28qklt6r0hnpaeZ mysql]# rpm -e --nodeps mysql-common-8.0.32-1.0.2.al8.x86_64
[root@iZbp11wm28qklt6r0hnpaeZ mysql]# rpm -qa | grep mysql
[root@iZbp11wm28qklt6r0hnpaeZ mysql]#
5.2.安装cmake
wget http://www.cmake.org/files/v2.8/cmake-2.8.10.2.tar.gz
tar -zxvf cmake-2.8.10.2.tar.gz
cd cmake-2.8.10.2
./configure
make
make install
make clean
到此 cmake安装完毕
5.2.1.cmake 版本
官网:https://cmake.org/download/
在cmake 官网连接中,存在两种版本cmake,根据自己的需要下载相应的版本,下载地址点击此链接。如无特殊需求,个人建议使用已经编译好的版本,方便快捷,一般不存在系统环境困扰:
- 一种为未编译版本,如下:
- 一种为已编译完成,可以直接使用的二进制安装包,如下:
5.2.2.源码安装cmake
源码安装
sudo apt install build-essential libssl-dev
wget https://github.com/Kitware/CMake/releases/download/v3.18.4/cmake-3.18.4.tar.gz
tar -zxvf cmake-3.18.4.tar.gz
cd cmake-3.18.4
./bootstrap
make
sudo make install
查看cmake 版本
cmake --version
源码卸载
安装 build 文件夹会有 install_manifest.txt 文件,里面的内容是 cmake 安装的文件,只要以此内容作为变量给 rm 指令处理即可
cd cmake-3.18.4
cat install_manifest.txt | sudo xargs rm
hash -r
六、本地Navicat、后端项目连接阿里云服务器(宝塔)上面的MySql数据库
6.1.环境说明
服务器类型:轻量应用服务器;
系统镜像:Alibaba Cloud Linux;
面板:宝塔Linux面板;
6.2.场景描述
想要在本地Navicat和后端项目的代码中,连接到服务器上搭建的MySql数据库。
6.3.操作步骤
6.3.1.登录宝塔面板,进入“安全”,点击“添加端口规则”。
6.3.2.在阿里云,同样添加安全组端口授权策略
6.3.3.(安装MySql和创建数据库的步骤这里就不做说明了)回到宝塔面板,点击数据库,进入MySql
,点击“root密码”,获取root
账号的密码。
6.3.4.点击“phpMyAdmin”,选择“通过授权访问”。
6.3.5.输入刚刚复制的密码,点击“登录”。
6.3.6.进入“phpMyAdmin”,在左侧树形,选择需要在本地访问的数据库,点击“权限”
6.3.7.点击“新增用户账户”
6.3.8.添加数据库成功后,点击管理
6.3.9.点击检查权限-->修改权限
6.3.10.回到本地的Navicat,测试连接阿里云的MySql数据库,连接成功。
6.3.11.导入本地数据库
6.3.12.导入数据库成功
七、Linux删除压缩包解压文件
注意:
rm -rf是递归删除,且强制不提示。 非常危险。
文件一旦通过删除,则无法恢复,所以必须格外小心地使用该命令。
[root@iZbp11wm28qklt6r0hnpaeZ app]# ls
cmake-2.8.10.2 cmake-2.8.10.2.tar.gz soft
[root@iZbp11wm28qklt6r0hnpaeZ app]# rm -rf cmake-2.8.10.2
[root@iZbp11wm28qklt6r0hnpaeZ app]# ls
cmake-2.8.10.2.tar.gz soft
八、Xshell无法连接Ubuntu的解决办法
首先,判断Ubuntu是否安装了ssh服务:
1. 输入:ps -e |grep ssh ,如果服务已经启动,则可以同时看到ssh-agent和sshd,否则表示没有安装服务,或没有开机启动
2. 安装ssh服务,输入命令:sudo apt-get install openssh-server
3. 启动服务:/etc/init.d/ssh start
本机测试是否能够成功登录:ssh -l 用户名 本机ip
九、Docker安装步骤
Docker必须部署在Linux内核的系统上,如果其他系统想部署Docker就必须安装一个Linux环境
9.1.Centos7及以上的版本
uname命令用于打印当前系统相关信息(内核版本号、硬件架构、主机名称和操作系统类型等)
[root@192 ~]# cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)
[root@192 ~]#
[root@192 ~]# uname -r
3.10.0-1160.el7.x86_64
Docker的基本组成:镜像(image)、容器(container)、仓库(repository)
9.2.卸载旧版本
https://docs.docker.com/engine/install/centos/
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine \
docker-ce
9.3.yum安装gcc相关
Centos7能上网
yum -y install gcc
yum -y install gcc-c++
9.4.安装需要的软件包
# 国外网址,容易报错,建议不要照着国外安装
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
报错:
1[Errno 14] curl#35 -TCP connection reset by peer
2 [Errno 12] curl#35 -Timeout
虚拟机联网,安装yum工具
yum install -y yum-utils \
device-mapper-persistent-data \
lvm2 --skip-broken
9.5.设置stable镜像仓库【国内aliyun】
然后更新本地镜像源:
# 设置docker镜像源
yum-config-manager \
--add-repo \
https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
sed -i 's/download.docker.com/mirrors.aliyun.com\/docker-ce/g' /etc/yum.repos.d/docker-ce.repo
9.6.更新yum软件包索引--以后安装更快捷
# 更新yum软件包索引
yum makecache fast
9.7.安装Docker-Ce
然后输入命令:
sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
或者
yum install -y docker-ce
docker-ce为社区免费版本。稍等片刻,docker即可安装成功。
9.8.启动Docker
sudo systemctl start docker
9.9.测试
[root@192 docker]# ps -ef | grep docker
root 2001 1 7 13:40 ? 00:00:01 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
root 2291 1475 0 13:41 pts/0 00:00:00 grep --color=auto docker
[root@192 docker]#
[root@192 docker]# docker -v
Docker version 24.0.7, build afdd53b
[root@192 docker]#
[root@192 docker]# docker version
9.10.卸载
# 关闭docker
sudo systemctl stop docker
sudo yum remove docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras
# 卸载第三方库包
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd
9.11.配置阿里云镜像加速
docker官方镜像仓库网速较差,我们需要设置国内镜像服务:
参考阿里云的镜像加速文档:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors
https://promotion.aliyun.com/ntms/act/kubernetes.html
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://hjisj8si.mirror.aliyuncs.com"]
}
EOF
# 查看文件内容
cat /etc/docker/daemon.json
sudo systemctl daemon-reload
# 重启docker
sudo systemctl restart docker
十、Docker常用命令
10.1.Docker基本操作-镜像
练习需求:去DockerHub搜索并拉取一个Redis镜像
目标:
1)去DockerHub搜索Redis镜像
2)查看Redis镜像的名称和版本
3)利用docker pull命令拉取镜像
4)利用docker save命令将 redis:latest打包为一个redis.tar包
5)利用docker rmi 删除本地的redis:latest
6)利用docker load 重新加载 redis.tar文件
根据查看到的镜像名称,拉取自己需要的镜像 https://hub.docker.com/
[root@192 soft]# docker pull redis
查看拉取到的镜像
[root@192 soft]# docker images
使用docker save导出镜像到磁盘
docker save -o [保存的目标文件名称] [镜像名称]
[root@192 soft]# docker save -o nginx.tar nginx:latest
删除本地的redis镜像
[root@192 soft]# docker rmi redis:latest
加载本地文件
[root@192 soft]# docker load -i redis.tar
10.2.Docker基本操作-容器
- docker run:创建并运行一个容器,处于运行状态
- docker pause:让一个运行的容器暂停
- docker unpause:让一个容器从暂停状态恢复运行
- docker stop:停止一个运行的容器
- docker start:让一个停止的容器再次运行
- docker rm:删除一个容器
案例-创建并运行一个容器
创建并运行nginx容器的命令:
docker run --name containerName -p 80:80 -d nginx
命令解读:
- docker run :创建并运行一个容器
- --name : 给容器起一个名字,比如叫做mn
- -p :将宿主机端口与容器端口映射,冒号左侧是宿主机端口,右侧是容器端口
- -d:后台运行容器
- nginx:镜像名称,例如nginx
进入容器。进入我们刚刚创建的nginx容器的命令为:
docker exec -it mn bash
命令解读:
- docker exec :进入容器内部,执行一个命令
- -it : 给当前进入的容器创建一个标准输入、输出终端,允许我们与容器交互
- mn :要进入的容器的名称
- bash:进入容器后执行的命令,bash是一个linux终端交互命令
docker run命令的常见参数有哪些?
- --name:指定容器名称
- -p:指定端口映射
- -d:让容器后台运行
查看容器日志的命令:
- docker logs
- 添加 -f 参数可以持续查看日志
查看容器状态:
- docker ps
- docker ps -a 查看所有容器,包括已经停止的
创建并运行一个redis容器,并且支持数据持久化,进入redis容器,并执行redis-cli客户端命令,存入数据
步骤一:到DockerHub搜索Redis镜像
步骤二:查看Redis镜像文档中的帮助信息
步骤三:利用docker run命令运行一个Redis容器
[root@192 soft]# docker pull redis
[root@192 soft]# docker run --name mr -p 6379:6379 -d redis redis-server --appendonly yes
[root@192 soft]# docker ps
[root@192 soft]# docker exec -it mr bash
root@3e85c6369447:/data# redis-cli
127.0.0.1:6379> keys *
(empty array)
root@3e85c6369447:/data# exit
[root@192 soft]# docker exec -it mr redis-cli
10.3.数据卷操作
数据卷的作用:
- 将容器与数据分离,解耦合,方便操作容器内数据,保证数据安全
docker volume命令是数据卷操作,根据命令后跟随的command来确定下一步的操作:
- create 创建一个volume
- inspect 显示一个或多个volume的信息
- ls 列出所有的volume
- prune 删除未使用的volume
- rm 删除一个或多个指定的volume
- docker volume create XXXX:创建数据卷
- docker volume ls:查看所有数据卷
- docker volume inspect XXXX:查看数据卷详细信息,包括关联的宿主机目录位置
- docker volume rm XXXX:删除指定数据卷
- docker volume prune:删除所有未使用的数据卷
docker volume rm [OPTIONS] VOLUME [VOLUME...] #删除一个或多个卷。不能删除容器正在使用的卷。
-f, --force 强制移除一个或多个卷
docker volume prune [OPTIONS] #删除所有未使用的本地卷
--filter filter 提供过滤值(e.g. 'label=<label>')
-f, --force 不提示确认
10.3.1.挂载数据卷
我们在创建容器时,可以通过 -v 参数来挂载一个数据卷到某个容器内目录,命令格式如下:
docker run \
--name mn \
-v html:/root/html \
-p 8080:80
nginx \
这里的-v就是挂载数据卷的命令:
-v html:/root/htm
:把html数据卷挂载到容器内的/root/html这个目录中
10.3.2.案例-给nginx挂载数据卷
需求:创建一个nginx容器,修改容器内的html目录内的index.html内容
分析:上个案例中,我们进入nginx容器内部,已经知道nginx的html目录所在位置/usr/share/nginx/html ,我们需要把这个目录挂载到html这个数据卷上,方便操作其中的内容。
提示:运行容器时使用 -v 参数挂载数据卷
步骤:
① 创建容器并挂载数据卷到容器内的HTML目录
docker run --name mn -v html:/usr/share/nginx/html -p 80:80 -d nginx
② 进入html数据卷所在位置,并修改HTML内容
# 查看html数据卷的位置
docker volume inspect html
# 进入该目录
cd /var/lib/docker/volumes/html/_data
# 修改文件
vi index.html
数据卷挂载方式:
- -v volumeName: /targetContainerPath
- 如果容器运行时volume不存在,会自动被创建出来
10.3.3.案例-给MySQL挂载本地目录
容器不仅仅可以挂载数据卷,也可以直接挂载到宿主机目录上。关联关系如下:
- 带数据卷模式:宿主机目录 --> 数据卷 ---> 容器内目录
- 直接挂载模式:宿主机目录 ---> 容器内目录
如图:
语法:
目录挂载与数据卷挂载的语法是类似的:
- -v [宿主机目录]:[容器内目录]
- -v [宿主机文件]:[容器内文件]
需求:创建并运行一个MySQL容器,将宿主机目录直接挂载到容器
实现思路如下:
1)在将课前资料中的mysql.tar文件上传到虚拟机,通过load命令加载为镜像
2)创建目录/tmp/mysql/data
3)创建目录/tmp/mysql/conf,将课前资料提供的hmy.cnf文件上传到/tmp/mysql/conf
4)去DockerHub查阅资料,创建并运行MySQL容器,要求:
① 挂载/tmp/mysql/data到mysql容器内数据存储目录
② 挂载/tmp/mysql/conf/hmy.cnf到mysql容器的配置文件
③ 设置MySQL密码
docker run \
--name mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
-p 3306:3306 \
-v /tmp/mysql/conf/hmy.cnf:/etc/mysql/conf.d/hmy.cnf \
-v /tmp/mysql/data:/var/lib/mysql \
-d \
mysql:5.7.25
10.3.4.进入Mysql容器操作数据库
[root@iZbp11wm28qklt6r0hnpaeZ soft]# docker exec -it mysql bash
root@64f103355834:/# ls
bin boot dev docker-entrypoint-initdb.d entrypoint.sh etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
root@64f103355834:/# mysql -u root -p
Enter password:
mysql> show databases;
[root@iZbp11wm28qklt6r0hnpaeZ soft]# docker exec -it mysql bash
root@64f103355834:/# ls
bin boot dev docker-entrypoint-initdb.d entrypoint.sh etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
root@64f103355834:/# show databases;
bash: show: command not found
root@64f103355834:/# mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 5.7.25 MySQL Community Server (GPL)
Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| ssm_db |
| sys |
| tlias |
+--------------------+
6 rows in set (0.00 sec)
mysql> use ssm_db;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> show tables;
+------------------+
| Tables_in_ssm_db |
+------------------+
| tbl_book |
+------------------+
1 row in set (0.00 sec)
mysql>
十一、运行命令
redis
docker run --name mr -p 6379:6379 -d redis redis-server --appendonly yes
nginx
docker run --name mn -p 80:80 -d nginx
mysql:5.7.25
docker run \
--name mysql \
--privileged=true \
-e MYSQL_ROOT_PASSWORD=123456 \
-p 3306:3306 \
-v /tmp/mysql/conf/hmy.cnf:/etc/mysql/conf.d/hmy.cnf \
-v /tmp/mysql/conf/hmy.cnf:/etc/mysql/conf.d/hmy.cnf \
-v /tmp/mysql/data:/var/lib/mysql \
-d \
mysql:5.7.25
--name : 起名字
--privilege=true : 容器数据卷权限开启
-p : 端口映射
-d : 后台运行
rabbitmq:3-management
docker run \
-e RABBITMQ_DEFAULT_USER=root \
-e RABBITMQ_DEFAULT_PASS=123456 \
--name mq \
--hostname mq1 \
-p 15672:15672 \
-p 5672:5672 \
-d \
rabbitmq:3-management
elasticsearch:7.12.1
docker run -d \
--name es \
-e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \
-e "discovery.type=single-node" \
-v es-data:/usr/share/elasticsearch/data \
-v es-plugins:/usr/share/elasticsearch/plugins \
--privileged \
--network es-net \
-p 9200:9200 \
-p 9300:9300 \
elasticsearch:7.12.1
kibana:7.12.1
docker run -d \
--name kibana \
-e ELASTICSEARCH_HOSTS=http://es:9200 \
--network=es-net \
-p 5601:5601 \
kibana:7.12.1
十二、Xshell高度自定义护眼配色方案(直接修改代码版本,附参考文档)
希望全方位定制的,可以直接导入自己写的xct文件,如效果如所示,想改什么改什么,精确到各种高亮文本自定义,包含注释、函数、变量等等(如果喜欢效果图那个配色可以直接复制这个代码存为.xcs文件导入)
[ymmColor]
text=d0921e
cyan(bold)=50ebfc
text(bold)=00cccc
magenta=3CB371
green=008000
green(bold)=29A098
background=002B36
cyan=00a2c4
red(bold)=A42626
yellow=999606
magenta(bold)=a97ead
yellow(bold)=e2e234
red=a56434
white=cfd8d3
blue(bold)=3491ED
white(bold)=eceeee
black=36342e
blue=0F5CAA
black(bold)=535755
[Names]
name0=ymmColor
count=1
[ymmColor] #这是你新建的配色方案的名称
text=d0921e #普通文本颜色值
cyan(bold)=50ebfc
text(bold)=00cccc
magenta=3CB371 #高亮文本颜色1(比如变量)
green=008000
green(bold)=29A098 #高亮文本颜色2(比如linux里面可执行文件就会是该颜色)
background=002B36 #背景颜色 (底色)
cyan=00a2c4 #高亮文本颜色3(比如函数)
red(bold)=A42626 #高亮文本颜色4(比如linux里面的包、以及grep等过滤结果的颜色)
yellow=999606
magenta(bold)=a97ead
yellow(bold)=e2e234
red=a56434
white=cfd8d3
blue(bold)=3491ED #高亮文本颜色5(比如linux里面文件夹的颜色)
white(bold)=eceeee
black=36342e
blue=0F5CAA #注释颜色
black(bold)=535755
[Names]
name0=ymmColor
count=1
评论