欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

【银河麒麟国产服务器安装mysql、nginx和docker遇到的问题】(回忆篇)

时间:2023-05-21
前言

由于公司项目扩展,需要将软件进行国产适配,这是一个支持国产的好机会,博主当然要首当其冲的冲在了最前沿,然后在部署环境的过程中出了一些问题,但是不能慌。
项目介绍:
语言:Java
框架:springCloud
数据库:Mysql 5.7
jdk:1.8
中间件:rabbitMq
非关系型数据库:Redis
项目启动采用jar包打包成docker镜像的方式启动,因此本次服务器安装需要安装JDK,rabbitmq、redis、mysql以及docker。jdk、mysql、redis以及rabbitmq使用docker镜像安装。

咱们还是要凭借着工作经验去解决问题。还好最后功夫不负有心人。成功搭建!下面先放搭建成功之后的图片(由于隐私,LOGO就抹掉了哈)

国产服务器配置:

CPU: Hygon C86 5280 16-core Processor 内存:16G硬盘:500G

从图片里可以看到使用的是国产海光CPU,Linux系统使用的是国产麒麟。

内存

查看服务器的内存 16G

查看服务器型号 Huayun S1,服务器是由信创公司提供的

nginx的搭建

想到搭建nginx,可能大家都会使用yum直接安装部署,一气呵成。直接complete,那多倍儿爽,但是天有不测风云,月有阴晴圆缺。美好的事物总那么的不美好。
第一步:更新yum源

sudo yum update

嗯哼,完美。等了大概10分钟,更新成功!!!真好。真过劲!

然后使用以前安装centos的方法安装nginx

添加源

sudo rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm

安装Nginx

sudo yum install -y nginx

安装失败,当时没有留截图,忘记报错是什么了,这个如果安装成功会显示complete,而且不需要安装4个依赖(GCC++等等)

好吧,额滴神哦。我也没有继续搜解决方案。此路不通,换条路走,条条大路通罗马,那就采用源码方式安装吧。
源码方式安装请看其他博客

认识nginx和配置nginx

啊哦,安装不成功。大致报错内容就是
出现‘struct crypt_data’没有名为‘current_salt’的成员 cd.current_salt[0]
原因:安装的版本过低,
解决方式:源码下载最新的nginx
success!

安装docker

使用java怎么能没有docker呢,docker的安装也是本次能够安装成功的重要功臣之一。老样子,采用以前的方式安装docker,估计应该不大行。
第一步:

curl -fsSL https://get.docker.com -o get-docker.sh

第二步:

sudo sh get-docker.sh

第三步:

sudo systemctl start docker

第四步:

docker ps

果然后面报错
Unsupported distribution 'alinux’

换一种方式安装(成功)
第一步 yum update 更新到最新

yum update

第二步: 安装docker

yum install -y docker-engine

这段过程时间比较长,我们可以去操作干一些其他的事情,比如我这段时间又打开了一个新的会话安装nginx。

第三步: 启动docker

systemctl start docker.service

第四步: 查看docker 版本,验证是否成功

docker version

第五步:查看docker容器(可选)

docker ps

第六步: 查看docker 镜像(可选)

docker images

安装Mysql

mysql安装这里面花费了很长的时间,尝试了三种方式才安装成功。
第一种:yum 安装 (失败)
第二种:源码安装(失败)
第三种:docker镜像安装(成功)
所以说后面的成功得亏是docker大酱(将)出马,要不然还是凉了。
第一种 yum安装:
以前的centos版本服务器如果不用到docker,基本上都是通过第一种方式安装的
1、yum源安装mysql

yum -y install mysql-server

2、开机启动

chkconfig mysqld on

3、启动mysql

service mysqld start

4、连接mysql,连接成功后,输入框前面会显示 mysql>

mysql -u root

5、在mysql中查询用户和密码

select user,host,password from mysql.user;

6、因为安装成功后,默认没有密码,需要设置密码。

set password for root@localhost=password('xiaofeng');

7、保存配置

flush privileges;

8、退出

exit

—最后以失败告终,其中第一步就失败了,后面的步骤主要提供给大家看一下–

第二种 源码安装
安装方式参考这个博客(失败)

缺少依赖,小友们可以yum这个包的依赖安装,博主当时也只是尝试一下。

第三种 docker安装(简单、有效、快捷)
如果道友们服务器上有docker的情况下,强烈建议大家使用docker安装mysql。

1、查询mysql

docker search mysql


2、下载mysql5.7镜像

docker pull mysql:5.7

3、创建容器并启动
密码:123456
-name 容器名称为mysql5.7

p端口映射:3306->3306
-i 以交互模式运行容器,通常与 -t 同时使用;
-t 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
-d 后台运行容器,并返回容器ID;
-e 传递环境变量

docker run --name mysql5.7 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7

4、查看启动的容器

docker ps

rabbitMQ和redis以及jdk同上就不复述了.

jar包部署
jar包上传到服务器中后需要先下拉adoptopenjdk/openjdk8-openj9的镜像

jar包部署代码

cd /home/csg/csg-centerdocker build -t csg-center .docker stop csg-centerdocker rm csg-centerdocker run -d -p 8761:8761 --name=csg-center csg-center --log-opt max-size=10m --log-opt max-file=3docker logs csg-centerdocker build -t csg-scada-manage .docker-compose up -d cd /home/csg/csg-configdocker build -t csg-config .docker stop csg-configdocker rm csg-configdocker run -d -p 8750:8750 --name=csg-config csg-config --log-opt max-size=10m --log-opt max-file=3docker logs csg-configcd /home/csg/csg-authdocker build -t csg-auth .docker stop csg-authdocker rm csg-authdocker run -d -p 9777:9777 --name=csg-auth csg-auth --log-opt max-size=10m --log-opt max-file=3docker logs csg-authcd /home/csg/csg-admindocker build -t csg-admin .docker stop csg-admindocker rm csg-admindocker run -d -p 8762:8762 --name=csg-admin csg-admin --log-opt max-size=10m --log-opt max-file=3docker logs csg-admincd /home/csg/csg-gatedocker build -t csg-gate .docker stop csg-gatedocker rm csg-gatedocker run -d -p 8765:8765 --name=csg-gate csg-gatedocker logs csg-gatecd /home/csg/csg-scada-managedocker build -t csg-scada-manage .docker stop csg-scada-managedocker rm csg-scada-managedocker run -d -p 8766:8766 --name=csg-scada-manage csg-scada-manage -v /etc/localtime:/etc/localtime:ro --log-opt max-size=10m --log-opt max-file=3docker logs csg-scada-managecd /home/csg/csg-scada-taskdocker build -t csg-scada-task .docker stop csg-scada-taskdocker rm csg-scada-taskdocker run -d -p 8763:8763 --name=csg-scada-task csg-scada-task -v /etc/localtime:/etc/localtime:ro --log-opt max-size=10m --log-opt max-file=3docker logs csg-scada-taskservice docker startdocker stop csg-centerdocker stop csg-scada-taskdocker stop csg-scada-managedocker stop csg-admindocker stop csg-gatedocker stop csg-authdocker stop csg-configdocker start csg-centerdocker start csg-configdocker start csg-authdocker start csg-admindocker start csg-gatedocker start csg-scada-managedocker start csg-scada-task

csg-admin的 DockerFile文件

FROM adoptopenjdk/openjdk8-openj9VOLUME /tmpADD csg-admin.jar app.jarADD wait-for-it.sh /wait-for-it.shRUN sh -c 'touch /app.jar' && echo 'Asia/Shanghai' >/etc/timezoneENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。