新买的/重置的aliyun服务器要怎么操作呢?我将一步步记录我的操作

我是真的偶尔就会把我的小阿里云服务器搞坏。。前段日子由于有其他事情好久没登录被黑客恶意脚本之行了。。没办法重装系统,所以记录一下每次环境搭建的过程,以后就不用四处搜了。。直接一键还原,然后重新安排!哈哈。

0、基本操作就不多说了,从开始登陆一个空白的阿里云服务器开始,我在选择操作系统的时候选择的是0元的打包好的centos7

1、登陆进来以后先确认一下资源使用情况

## df命令的功能是用来检查linux服务器的文件系统的磁盘空间占用情况 -h方便阅读方式显示
df -h
## 查看系统主机名及其它相关设置
hostnamectl
## 查看centos版本
lsb_release -d
## 如果查看centos版本报错了 lsb_release: command not found 
## lsb_release -a确认一下是不是没安装,确认没安装那么就可以执行下面这个用yum安装一下
yum install -y redhat-lsb

2、安装jdk

安装jdk是基本流程,其实只用docker可以不用装jdk,docker是用go语言编写的。

## 我要安装的是jdk8,去这个网址下载tar.gz后缀的正规jdk就行。
## 这里要注意你的操作系统是32位还是64位的,也就是我们hostnamectl时Architecture这个参数,我的是x86-64,也就是x64(64位)。
## https://www.oracle.com/java/technologies/javase-jdk8-downloads.html
## 下载完通过第三方工具上传到服务器上面哪个目录都行,我这里上传到/root目录了
## 进入root目录
cd /root
## 解压我们的gz压缩包
tar -zxvf jdk-8u281-linux-x64.tar.gz
## 切换到/usr/lib目录下
cd  /usr/lib
## 创建一个你能认出这是jdk的目录,我就叫jdk了
mkdir jdk
## 将解压完的目录和目录下的文件移动到我们新创建的jdk目录里,然后就可以删除root下面的东西了
mv ~/jdk1.8.0_281 /usr/lib/jdk
## 配置环境变量
vi /etc/profile
## 把下面这段复制进去,注意改成你自己的安装目录
export JAVA_HOME=/usr/lib/jdk/jdk1.8.0_281
export JRE_HOME=${JAVA_HOME}/jre  
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib  
export PATH=${JAVA_HOME}/bin:$PATH
## 你会发现虽然写进去了但是没有生效
## 所以还要让它立即生效一下
source /etc/profile
## 进行java安装结果验证
java -version

3、安装docker

我是是用yum进行安装,貌似必须要centos7以上才可以哈

## 阿里云官方也有安装教程:https://developer.aliyun.com/article/110806
# step 1: 安装必要的一些系统工具
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
# Step 2: 添加软件源信息
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# Step 3: 更新并安装 Docker-CE
sudo yum makecache fast
sudo yum -y install docker-ce
# Step 4: 开启Docker服务
sudo service docker start
# Step 5: 验证Docker安装结果
docker version
# Step 6:配置阿里云镜像加速器[不加速的,这步可以忽略]
## 阿里云网站中搜索容器镜像服务-》镜像工具-》镜像加速器,按照说明操作即可。
## 我在操作的时候遇到了服务器重启,导致docker启动不起来了,
## 一直报:“unable to configure the Docker daemon with file /etc/docker/daemon.json: invalid character 's' looking for beginning of value”这个错误
## 百度了一下好像daemon.json里面只能放k-v键值对,所以我把阿里云官方给的命令都删除了,只留下了大括号的内容,之后就可以启动了。
## 注意:记得自己执行一下下面的命令,
## 6.1、重置为失败状态
systemctl reset-failed docker.service
## 6.2、间隔60秒之后执行重启命令,不然会报你启动的太快了。这个60s的默认参数可以在/usr/lib/systemd/system/docker.service这个文件里面修改StartLimitInterval这个参数为3s,但是我没改嘿嘿。
StartLimitInterval=3s
## 6.3、reload一下系统控制
sudo systemctl daemon-reload
## 6.4、重启就可以啦。
sudo systemctl restart docker

4、docker安装启动mysql5.7

可以参考菜鸟的安装过程,很详细https://www.runoob.com/docker/docker-install-mysql.html

## step 1:找到你希望安装的mysql版本,我这里是5.7
## 你也可以去dockerhub上搜看有哪些挑一个 https://registry.hub.docker.com/search?type=image
docker pull mysql:5.7
## 下载镜像完成后可以验证一下,看看有没有mysql
docker images -a
## 进行内外映射启动,因为运行中的docker容器是不允许修改的,所以做一个具名挂载方便我们外部操作执行脚本
docker run -d -p 3306:3306 -v juming-mysql-home:/home -e MYSQL_ROOT_PASSWORD=xxxxxx --name mysql01 mysql:5.7
## 验证一下mysql的启动情况
docker ps
## 用本地的navicat试着连一下,注意在阿里云配置一下安全组,就ok啦

5、编写测试数据脚本

我当前比较想亲自体验一下mysql索引的威力,所以先造100万测试数据。

## step 1: 我是在本地navicat操作的,你萌也可以直接进入容器操作,我们先执行一个简单的脚本保证可用,再插入100w的
## 建个数据库test_index,建个表t_user,下面给个例子
create table t_user (
id INT NOT NULL AUTO_INCREMENT,
name VARCHAR(40) NOT NULL,
age INT NOT NULL,
create_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
)ENGINE=INNODB DEFAULT CHARSET=utf8 COMMENT='用户信息表';
## 简单插入一条数据
INSERT INTO `t_user`(`name`, `age`) VALUES ('啊', 3);
## step 2: 写一个abc.sql文件,放在/var/lib/docker/volumes/具名挂载的名称/_data,abc.sql文件的内容如下
select * from t_user;
## step 3: 进入正在运行中的容器,可以docker ps 查一下容器id,我的是487de6edeff4
docker exec -it 487de6edeff4 /bin/bash
## 可以ls一下,可以看到我们第4大步挂载的home目录下面已经有了我们在外面刚刚第2小步添加的abc.sql文件了
ls
## step 4: 进入mysql
mysql -u root -p
## 回车后要求输入密码,就输入启动容器时你定义的MYSQL_ROOT_PASSWORD值
xxxxxx
## step 5: 进入mysql后,切换数据库
show databases;
use test_index;
## step 6: 执行我们准备好的/home/abc.sql脚本进行验证
source /home/abc2.sql
## 如果可以看到我们插入的那条数据结果,就代表没有问题了,下面我们在外面来准备插入100万条数据的脚本就可以了,然后再进里面来执行。

6、体验脚本插入100万数据到mysql

以下是我的脚本,实践下来很慢,大佬说可以直接insert list可以提升效率,等我下次再试吧哈哈,跟着我到这一步的可以用insert list来操作,我这个真的跑了一下午。。
我的shell脚本文件名叫:abc.sh

#! /bin/bash
HOSTNAME="localhost"
PORT=""
USERNAME="root"
PASSWORD="xxxxxx"
DBNAME="test_index"
TABLENAME="t_user"
i=1
while [ $i -le 1000000 ]
do
	mysql -h ${HOSTNAME} -u ${USERNAME} -p${PASSWORD} -D ${DBNAME} -e "insert into t_user(name, age) values ('zzz$i', $i % 10);"
	i=$(($i+1))
done

然后先进入容器,再执行shell脚本就可以了。

## 进入容器
docker exec -it 487de6edeff4 /bin/bash
## 执行脚本
sh /home/abc.sh
## 然后就静静等待了。。。

我去体验mysql的索引和limit了,嘻嘻。

7、docker安装rocketmq

kafka和rabbitmq自己都或多或少懂一些,但是rocketmq始终没有静下心来学习一下,所以趁着这个机会,体验一把。
参考的是这位大佬的:https://www.cnblogs.com/gmhappy/p/13457026.html

## rocketmq没有官方的docker镜像,所以我选择了foxiswho打包好的4.7.0哈,直接运行就会自动下载完启动了
docker run -d -p 9876:9876 --name rmqserver foxiswho/rocketmq:server-4.5.1
## 下载启动broker镜像
docker run -d -p 10911:10911 -p 10909:10909 --name rmqbroker --link rmqserver:namesrv -e "NAMESRV_ADDR=namesrv:9876" -e "JAVA_OPTS=-Duser.home=/opt" -e "JAVA_OPT_EXT=-server -Xms128m -Xmx128m" foxiswho/rocketmq:broker-4.5.1
## 下载启动控制台
docker run -d --name rmqconsole -p 8180:8080 --link rmqserver:namesrv -e "JAVA_OPTS=-Drocketmq.namesrv.addr=namesrv:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false" -t styletang/rocketmq-console-ng
## 验证一下看这三个服务都起来没有
docker ps|grep rocketmq
## 访问一下你的服务器http://ip:8180就可以看到可视化界面了

未完待续。。。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值