政务外网CentOS7部署微服务及遇到问题和解决方案(jdk mysql docker docker-compose docker-machine nginx)

安装jdk

1、下载JDK
官网下载地址:https://www.oracle.com/technetwork/java/javase/downloads/index.html

2、安装JDK

在安装之前,需要查看Linux系统本身是不是自带了jdk,如果自带jdk,卸载之后再安装,查看是否自带jdk命令如下

echo $JAVA_HOME

新建一个jdk的安装路径,本文是在usr/local目录下新建java目录

mkdir /usr/local/java

把下载的 jdk-8u181-linux-x64.tar.gz包拷贝到新建的java目录下
进入到java目录,解压刚才拷贝的安装包

cd /usr/local/java
tar xvf jdk-8u181-linux-x64.tar.gz

解压后对jdk文件进行授权

chmod +x /usr/local/java/jdk1.8.0_181/bin/java
chmod +x /usr/local/java/jdk1.8.0_181/bin/javac
chmod +x /usr/local/java/jdk1.8.0_181/jre/bin/java

使用的过程中如果还有什么提示权限不足,则根据实际情况再进行授权即可
最后,配置java环境变量

vi /etc/profile

在文件末尾添加:


JAVA_HOME=/usr/local/java/jdk1.8.0_181

JRE_HOME=/usr/local/java/jdk1.8.0_181/jre

CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib

PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin

export JAVA_HOME JRE_HOME CLASS_PATH PATH

使配置生效

source /etc/profile

测试是否安装成功

java -version

遇到问题

未遇到问题,在此处 jdk包分享

链接: https://pan.baidu.com/s/1eZNWAyZShU48UfhHIWo3Cg  密码: 3ueo
--来自百度网盘超级会员V4的分享

安装mysql

一、查看CentOS7系统自带mariadb

# 查看系统自带的Mariadb
[root@iZ2ze3hm3gyjyjz628l7rgZ ~]# rpm -qa|grep mariadb
mariadb-libs-5.5.44-2.el7.centos.x86_64
# 卸载系统自带的Mariadb
[root@iZ2ze3hm3gyjyjz628l7rgZ ~]# rpm -e --nodeps mariadb-libs-5.5.44-2.el7.centos.x86_64
# 删除etc目录下的my.cnf
[root@iZ2ze3hm3gyjyjz628l7rgZ ~]# rm /etc/my.cnf

二、检查mysql是否存在

# 检查mysql是否存在
[root@iZ2ze3hm3gyjyjz628l7rgZ ~]# rpm -qa | grep mysql
[root@iZ2ze3hm3gyjyjz628l7rgZ ~]# 

三、查看用户和组是否存在
1)检查mysql组合用户是否存在

# 检查mysql组和用户是否存在,如无则创建
[root@iZ2ze3hm3gyjyjz628l7rgZ ~]# cat /etc/group | grep mysql 
[root@iZ2ze3hm3gyjyjz628l7rgZ ~]# cat /etc/passwd | grep mysql 
# 查询全部用户(只是做记录,没必要执行)
[root@iZ2ze3hm3gyjyjz628l7rgZ ~]# cat /etc/passwd|grep -v nologin|grep -v halt|grep -v shutdown|awk -F ":" '{print $1 "|" $3 "1" $4}' | more 
root|010
sync|510
mysql|99711001

2)若不存在,则创建mysql组和用户

# 创建mysql用户组
[root@iZ2ze3hm3gyjyjz628l7rgZ ~]# groupadd mysql
# 创建一个用户名为mysql的用户,并加入mysql用户组
[root@iZ2ze3hm3gyjyjz628l7rgZ ~]# useradd -g mysql mysql
# 制定password 为111111
[root@iZ2ze3hm3gyjyjz628l7rgZ ~]# passwd mysql
Changing password for user mysql.
New password: 
BAD PASSWORD: The password is a palindrome
Retype new password: 
passwd: all authentication tokens updated successfully.

四、下载mysql的tar包

https://dev.mysql.com/downloads/mysql/5.7.html#downloads

五、上传第四步下载的mysql TAR包到

# 进入/usr/local/src文件夹
[root@iZ2ze3hm3gyjyjz628l7rgZ ~]# cd /usr/local/src/
# 上传mysql TAR包
[root@iZ2ze3hm3gyjyjz628l7rgZ src]# rz
# 解压tar文件
[root@iZ2ze3hm3gyjyjz628l7rgZ src]# tar xvf mysql-5.7.22-el7-x86_64.tar
# 解压mysql-5.7.22-el7-x86_64.tar.gz
[root@iZ2ze3hm3gyjyjz628l7rgZ src]# tar -zxvf mysql-5.7.22-el7-x86_64.tar.gz
# 解压后的文件移动到/usr/local文件夹
[root@iZ2ze3hm3gyjyjz628l7rgZ src]# mv mysql-5.7.22-el7-x86_64 /usr/local
# 进入/usr/local下,修改为mysql
[root@iZ2ze3hm3gyjyjz628l7rgZ src]# cd /usr/local
[root@iZ2ze3hm3gyjyjz628l7rgZ local]# mv mysql-5.7.22-el7-x86_64 mysql

六、更改所属的组和用户

# 更改所属的组和用户
[root@iZ2ze3hm3gyjyjz628l7rgZ local]# chown -R mysql mysql/
[root@iZ2ze3hm3gyjyjz628l7rgZ local]# chgrp -R mysql mysql/
[root@iZ2ze3hm3gyjyjz628l7rgZ local]# cd mysql/

[root@iZ2ze3hm3gyjyjz628l7rgZ mysql]# mkdir data

[root@iZ2ze3hm3gyjyjz628l7rgZ mysql]# chown -R mysql:mysql data

七、在/etc下创建my.cnf文件

# 进入/etc文件夹下
[root@iZ2ze3hm3gyjyjz628l7rgZ mysql]# cd /etc
# 创建my.cnf文件
[root@iZ2ze3hm3gyjyjz628l7rgZ etc]# touch my.cnf 
# 编辑my.cnf
[root@iZ2ze3hm3gyjyjz628l7rgZ etc]# vim my.cnf 

1)my.cnf添加如下内容:

[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8 

[mysqld]
# 设置3306端口
port = 3306 
# 设置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

2)查看my.cnf内容

# 查看my.cnf文件
[root@iZ2ze3hm3gyjyjz628l7rgZ mysql]# cat /etc/my.cnf

八、进入mysql文件夹,并安装mysql

# 进入mysql
[root@iZ2ze3hm3gyjyjz628l7rgZ etc]# cd /usr/local/mysql/ 
# 安装mysql
[root@iZ2ze3hm3gyjyjz628l7rgZ mysql]# bin/mysql_install_db --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/
2018-07-04 15:46:02 [WARNING] 5mysql_install_db is deprecated. Please consider switching to mysqld --initialize
2018-07-04 15:46:05 [WARNING] The bootstrap log isn't empty:
2018-07-04 15:46:05 [WARNING] 2018-07-04T15:46:02.728710Z 0 [Warning] --bootstrap is deprecated. Please consider using --initialize instead
2018-07-01T15:46:02.729161Z 0 [Warning] Changed limits: max_open_files: 1024 (requested 5000)
2018-07-04 T15:46:02.729167Z 0 [Warning] Changed limits: table_open_cache: 407 (requested 2000)
[root@iZ2ze3hm3gyjyjz628l7rgZ mysql]# cp ./support-files/mysql.server /etc/init.d/mysqld
[root@iZ2ze3hm3gyjyjz628l7rgZ mysql]# chown 777 /etc/my.cnf 
[root@iZ2ze3hm3gyjyjz628l7rgZ mysql]# chmod +x /etc/init.d/mysqld

九、启动mysql

# 启动mysql
[root@iZ2ze3hm3gyjyjz628l7rgZ mysql]# /etc/init.d/mysqld restart
MySQL manager or server PID file could not be found!       [FAILED]

解决:

# 1、查看进程
[root@iZ2ze3hm3gyjyjz628l7rgZ mysql]# ps aux|grep mysql
root     10031  0.0  0.1 113264  1616 pts/0    S    14:36   0:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/usr/local/mysql/data --pid-file=/usr/local/mysql/data/iZ2ze3hm3gyjyjz628l7rgZ.pid
mysql    10220  0.0 19.1 1140876 195072 pts/0  Sl   14:36   0:02 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=iZ2ze3hm3gyjyjz628l7rgZ.err --pid-file=/usr/local/mysql/data/iZ2ze3hm3gyjyjz628l7rgZ.pid --port=3306
root     10421  0.0  0.0 112660   968 pts/0    R+   15:51   0:00 grep --color=auto mysql
# 2、杀死进程
[root@iZ2ze3hm3gyjyjz628l7rgZ mysql]# kill -9 10031
[root@iZ2ze3hm3gyjyjz628l7rgZ mysql]# kill -9 10220
# 3、重启mysql
[root@iZ2ze3hm3gyjyjz628l7rgZ mysql]# /etc/init.d/mysqld restart
Shutting down MySQL.. 
Starting MySQL. 

十、设置开机启动

#设置开机启动
[root@iZ2ze3hm3gyjyjz628l7rgZ mysql]# chkconfig --level 35 mysqld on
[root@iZ2ze3hm3gyjyjz628l7rgZ mysql]# chkconfig --list mysqld

[root@iZ2ze3hm3gyjyjz628l7rgZ mysql]# chmod +x /etc/rc.d/init.d/mysqld
[root@iZ2ze3hm3gyjyjz628l7rgZ mysql]# chkconfig --add mysqld
[root@iZ2ze3hm3gyjyjz628l7rgZ mysql]# chkconfig --list mysqld
[root@iZ2ze3hm3gyjyjz628l7rgZ mysql]# service mysqld status
 SUCCESS! MySQL running (4475)

十一、修改配置文件

# 进入/etc/profile文件夹
[root@iZ2ze3hm3gyjyjz628l7rgZ mysql]# vim /etc/profile

1)修改/etc/profile,在最后添加如下内容

# 修改/etc/profile文件
#set mysql environment
export PATH=$PATH:/usr/local/mysql/bin
# 使文件生效
[root@iZ2ze3hm3gyjyjz628l7rgZ mysql]# source /etc/profile

十二、获得mysql初始密码

# 1、获得mysql初始密码
[root@iZ2ze3hm3gyjyjz628l7rgZ bin]# cat /root/.mysql_secret  
# Password set for user 'root@localhost' at 2017-04-17 17:40:02 
_pB*3VZl5T<6
# 2、修改密码
[root@iZ2ze3hm3gyjyjz628l7rgZ bin]# mysql -uroot -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 53
Server version: 5.7.22 MySQL Community Server (GPL)

Copyright (c) 2000, 2018, 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> set PASSWORD = PASSWORD('root');
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)

十三、添加远程访问权限

# 添加远程访问权限
mysql> use mysql
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> update user set host='%' where user='root';
Query OK, 0 rows affected (0.00 sec)
Rows matched: 1  Changed: 0  Warnings: 0

mysql> select host,user from user;
+-----------+---------------+
| host      | user          |
+-----------+---------------+
| %         | root          |
| localhost | mysql.session |
| localhost | mysql.sys     |
+-----------+---------------+
3 rows in set (0.00 sec)

十四、重启mysql生效

# 重启mysql
[root@iZ2ze3hm3gyjyjz628l7rgZ bin]# /etc/init.d/mysqld restart 
Shutting down MySQL.. 
Starting MySQL. 

备注:
    由于安装在/usr/local下面的mysql,因此可以在热河文件夹启动mysql
    若安装在别的文件夹,请执行以下命令:

# 为了在任何目录下可以登录mysql
ln -s /你的mysql路径/mysql  /usr/local/mysql

遇到问题

1、在获得mysql初始密码时请复制粘贴勿手打 

2、无法同时创建'root'@'%'、'root'@'localhost'

drop user 'root'@'%';
drop user 'root'@'localhost';
flush privileges;
create user 'root'@'%' identified by '密码';
create user 'root'@'localhost' identified by '密码';
select user,host from user;

3、mysql "select command denied to user root" 问题解决

找到mysql数据库下的user表,把对应的用户权限修改为'Y'

use mysql
update user set Select_priv='Y' where user='root' and host='%';
select host,user,Select_priv from user;

mysql 包分享

链接: https://pan.baidu.com/s/1SyAMxeC_W-6PHh_ilWLAbw  密码: rvlr
--来自百度网盘超级会员V4的分享

安装nginx

遇到问题

/etc/systemd/system/docker.service.d/http-proxy.conf网络不可达 错误:跳过 http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm - 传输失败

解决方法: 由于一直不能在线安装nginx所以我选择离线安装

1、在线安装

一、添加Nginx到YUM源

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

二、安装Nginx

yum命令从Nginx源服务器中获取来安装Nginx

sudo yum install -y nginx

三、启动Nginx
刚安装的Nginx不会自行启动。运行Nginx:

sudo systemctl start nginx.service

域名或IP来访问你的Web页面检验是否安装成功

4、CentOS 7 开机启动Nginx

sudo systemctl enable nginx.service

2、离线安装

一、安装前检查工作

linux版本:CentOS7 64位

【yum 安装最新版nginx:https://www.cnblogs.com/xxoome/p/7256214.html】

在安装nginx前首先要确认系统中安装了gcc、pcre-devel、zlib-devel、openssl-devel

Linux下检查是否安装过某软件包:http://www.cnblogs.com/xxoome/p/5866553.html

安装命令:

yum -y install gcc pcre-devel zlib-devel openssl openssl-devel

二、nginx安装

nginx下载地址:https://nginx.org/download/

进入到到/usr/local/下。

## 解压
tar -zxvf nginx-1.9.9.tar.gz

##进入nginx目录
cd nginx-1.9.9

## 配置
./configure --prefix=/usr/local/nginx

# make
make
make install

测试是否安装成功

# cd到刚才配置的安装目录/usr/loca/nginx/
./sbin/nginx -t

nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successfu

启动nginx

cd /usr/local/nginx/sbin
./nginx //启动nginx

域名或IP来访问你的Web页面检验是否安装成功

三、配置nginx开机自启动

vim /etc/rc.d/rc.local
##在文件结尾加上开机启动nginx
/usr/local/nginx/sbin/nginx

遇到问题

问题一:

nginx: [alert] could not open error log file: open() "/usr/local/nginx/logs/error.log" failed (2: No such file or directory)
2016/09/13 19:08:56 [emerg] 6996#0: open() "/usr/local/nginx/logs/access.log" failed (2: No such file or directory)

原因分析:nginx/目录下没有logs文件夹

解决方案

mkdir logs
chmod 700 logs

问题二:

检验nginx是否安装成功时默认页面不展示但安装步骤又没有出错

原因分析:可能是80端口没有开启

解决方案

firewall-cmd --add-port=80/tcp --permanent
#重启防火墙
systemctl restart firewalld

--permanent   #永久生效,没有此参数重启后失效

安装docker、docker-compose、docker-machine

1、安装docker

一、安装前准备

卸载    Docker的旧版本被称为docker或docker-engine,若以前安装过,卸载命令如下

yum remove docker docker-common container-selinux docker-selinux docker-engine

有些文章在这里使用了yum upgrade,命令的意思是升级所有包同时也升级软件和系统内核。我建议最好不执行命令,可能千万系统崩溃,因为系统版本从低级升级到高级,有些软件可能会出现问题

二、安装yum-utils device-mapper-persistent-data lvm2软件包

yum install -y yum-utils device-mapper-persistent-data lvm2

三、配置稳定版本库

大多数用户设置了Docker的存储库并从中安装,以方便安装和升级任务。 这是推荐的方法

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

四、查看所有仓库中所有docker版本(查看所有社区版的docker-ce版本。)

yum list docker-ce --showduplicates | sort -r

五、安装docker

指定版本安装(推荐

yum install docker-ce-18.03.1.ce-1.el7.centos

最新版本(由于repo中默认只开启stable仓库,故这里安装的是最新稳定版18.03)

yum install docker-ce

六、启动docker

systemctl start docker

查看版本(验证是否安装成功)

docker --version

七、docker启动/重启/停止等命令

添加docker开机启动:systemctl enable docker
启动命令:systemctl start docker
重启命令:systemctl restart docker
停止命令:systemctl stop docker
查看版本:docker version
卸载:yum remove docker-ce
查看窗口端口映射:docker ps
查看所以容器(包括被关闭的):docker ps --all

2、安装docker-compose、docker-machine

由于考虑到下载缓慢直接分享 docker-compose分享    docker-machine分享

链接: https://pan.baidu.com/s/1YvSb9Btr0PcsAO2MaTMLVg  密码: eucr
--来自百度网盘超级会员V4的分享

链接: https://pan.baidu.com/s/1zdGNIp2PYeLb0HuZJg6kZQ  密码: uiwa
--来自百度网盘超级会员V4的分享

docker-compose、docker-machine包   添加到/usr/local/bin/目录下并赋予权限

chmod +x docker-compose

chmod +x docker-machine

验证是否安装成功

##验证docker-machine
docker-machine -v

##验证docker-compose
docker-compose -v

遇到问题

问题一:

启动docker-compose up时报错

ERROR: Service 'gds-register' failed to build: Get https://registry-1.docker.io/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers

原因: 本身网速太慢,无法下载;

解决方案:

 更换阿里云镜像

sudo vim /etc/docker/daemon.json
{
 "registry-mirrors":["https://6kx4zyno.mirror.aliyuncs.com"]
}

重启docker

systemctl daemon-reload 

systemctl restart docker

问题二:

在下载docker包时报错 网络不可达

Could not fetch/save url https://download.docker.com/linux/centos/docker-ce.repo to file /etc/yum.repos.d/docker-ce.repo: [Errno 14] curl#7 - "Failed to connect to 2600:9000:21c4:4600:3:db06:4200:93a1: 网络不可达"

解决方法:

##1.卸载docker旧版本:

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\
##2.安装相关工具类:

sudo yum install -y yum-utils \
  device-mapper-persistent-data \
  lvm2

##3.配置docker仓库:

sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

##然后从安装docker、docker-compose、docker-machine第一步开始

问题三:

在使用docker-compose up 启动服务时报错

解决方法:

##使用改命令查找文件
[root@localhost docker]# find / -name timezone
/var/lib/docker/overlay2/6debf31073ed57522471a67ddbe0ca16f9cdd40912923cda04582329aa5fe618/diff/etc/timezone
/var/lib/docker/overlay2/352c47b93cee0a38ca3e61e46a243a105fbe64e71f302b3fafb139d3a91f189f/diff/etc/timezone
/var/lib/docker/overlay2/7dfe67337b86b1ff72e0f8191d7e04a6bdcc8be70e70ec91b746634be245ae75/diff/etc/timezone
/var/lib/docker/overlay2/a2b29302e6dfb36b634edda59009634e23f505cf461e2f92978ef226c4c7839d/diff/etc/timezone
/var/lib/docker/overlay2/dea0a8d7fc4908683adfa85822e6fcdd8d93289121d338f59b6f23d71bc70dc2/diff/etc/timezone
/var/lib/docker/overlay2/04141053f62c53942ff73ff0996888219cbbae8cff6cd61cac6f0b93b3ab1f4a/diff/etc/timezone
/etc/timezone
[root@localhost docker]# 
  

##留下/etc/timezone其余全部删除即可

问题四:

在线安装docker报错

failure: repodata/repomd.xml from docker-ce-stable: [Errno 256] No more mirrors to try.
https://download.docker.com/linux/centos/2.1903/x86_64/stable/repodata/repomd.xml: [Errno 14] HTTPS Error 404 - Not Found
 

#添加docker仓库
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
#编辑 /etc/yum.repos.d/docker-ce.repo
sudo vi /etc/yum.repos.d/docker-ce.repo
#修改[docker-ce-stable]下的baseurl
baseurl=https://download.docker.com/linux/centos/7/$basearch/stable 

完!!!

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值