使用了一段时间Ubuntu,感觉百度对Ubuntu的支持不是很好,自身英语水平也不够,所以换CentOS7试试。
腾讯云重装系统后,先装一下JDK1.8。
1 JDK安装配置
1.1 JDK下载
使用wget下载:
# wget https://download.oracle.com/otn/java/jdk/8u231-b11/5b13a193868b4bf28bcb45c792fce896/jdk-8u231-linux-x64.tar.gz?AuthParam=1576566136_02272ddf697f45ccc1dc9050864ec743
--2019-12-17 15:13:29-- https://download.oracle.com/otn/java/jdk/8u231-b11/5b13a193868b4bf28bcb45c792fce896/jdk-8u231-linux-x64.tar.gz?AuthParam=1576566136_02272ddf697f45ccc1dc9050864ec743
Resolving download.oracle.com (download.oracle.com)... 23.42.152.56
Connecting to download.oracle.com (download.oracle.com)|23.42.152.56|:443... connected.
HTTP request sent, awaiting response... 403 Forbidden
2019-12-17 15:19:30 ERROR 403: Forbidden.
研究半天,把下载链接最后的'?AuthParam=1576566136_02272ddf697f45ccc1dc9050864ec743'去掉就可以了
下载完成后,查看大小
# ls -lht
明显大小不对,之前的链接是从迅雷中复制的,怀疑迅雷处理了,随改为浏览器直接下载,然后复制浏览器下载地址
这才像样了,不过下载速度太慢了,最后还是选择了本地下载之后上传。
文件由本地上传至Linux的过程参考另一个随笔。不得不吐槽,Oracle把网站改的,下载个JDK越来越多难了。建议趁早备份。
1.2 安装
创建安装目录
# mkdir /usr/local/java
解压至安装目录
tar -zxvf JDK名称(Tab自动补全) -C /usr/local/java
速度很快就解压完了。
1.3 设置环境变量
# vim /etc/profile
按一下'I':
底部会出现'-- INSERT --'字样,就可以插入,在末尾插入:
export JAVA_HOME=/usr/local/java/jdk1.8.0_171
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
这里我在前边加了个注释,方便以后查看寻找,在输入JAVA_HOME的时候,忘了JDK的版本号,然后直接用Xftp打开去看了一眼。
之后按'Esc'
'-- INSERT --' 消失,按'Shift+;'结果是需要':'
会出现输入框,这时候可以输入命令来保存并退出:
:q 退出
:w 保存
这里是保存并退出,输入wq
退出后可以用查看命令来查看是否编辑成功:
# cat /etc/profile
使环境变量生效:
# source /etc/profile
添加软链接
# ln -s /usr/local/java/jdk1.8.0_231/bin/java /usr/bin/java
检查:
# java -version
这里的软链接,理解感觉就是可以直接用java当命令
2 MySQL安装配置
2.1 添加MySQL仓库
添加仓库:(地址可以在https://dev.mysql.com/downloads/repo/yum/查看最新的)
# yum localinstall https://repo.mysql.com//mysql80-community-release-el7-3.noarch.rpm
查看yum源中所有的MySQL版本:
# yum repolist all | grep mysql
可以看到,启用的只有MySQL8.0,所以先将8.0禁用,启用5.7
# yum-config-manager --disable mysql80-community
# yum-config-manager --enable mysql57-community
修改后查看:
2.2 安装MySQL5.7
# yum install -y mysql-community-server
2.3 启动Mysql及MySQL自启
# systemctl start mysqld.service
# systemctl enable mysqld.service
2.4 数据库密码
MySQL从5.7开始不允许首次安装后使用空密码进行登录!为了加强安全性,系统会随机生成一个密码以供管理员首次登录使用,这个密码记录在/var/log/mysqld.log文件中,使用下面的命令可以查看此密码:
# cat /var/log/mysqld.log | grep 'A temporary password'
冒号后的'6ny0#qpL=ZVj'就是临时密码。
使用此密码来登录MySQL:
# mysql -p
输入密码后进入MySQL,不过必须得及时修改密码:
直接设置密码:
mysql> set password=password('root')
报错了,提示:ERROR 1819 (HY000): Your password does not satisfy the current policy requirements,查看知道是MySQL密码策略的问题,就是不允许这么简单的密码,修改安全策略:
mysql> set global validate_password_policy=0;
这个是将安全校验等级改为LOW,就是低,不会校验那么复杂;
mysql> set global validate_password_length=4;
这个是将安全校验密码长度改为4,长度是要>=4就都可以;
然后再次设置密码:
mysql> set password=password('root');
刷新权限:
mysql> flush privileges;
之后就不报错了:
注意一点: mysql5.7之后的数据库里mysql.user表里已经没有password这个字段了,password字段改成了authentication_string。 所以修改密码的命令如下:
mysql> update mysql.user set authentication_string=password('123456') where user='root';
Query OK, 1 row affected, 1 warning (0.00 sec) Rows matched: 1 Changed: 1 Warnings: 1
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
2.5 后续设置
查看MySQL版本:
mysql> select version();
修改MySQL编码为UTF-8:
mysql> show variables like '%character%';show variables like '%collation%';
修改需要退出MySQL;
# vim /etc/my.cnf
修改保存后重启MySQL:
# systemctl restart mysqld.service
报错了,依据提示查看错误详情:
# journalctl -xe
然后发现一行: mysqld: Character set 'utf-8' is not a compiled character s
百度发现设置问题,然后会看步骤发现,设置时应该是'utf8'不是'utf-8'
3 安装Docker
3.1 安装前准备
# cat /etc/redhat-release
# uname -a
卸载旧版本:
# yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
3.2 安装Docker CE
方便添加软件源,支持devicemapper存储类型,了解了一下DeviceMapper是Centos提供的一种从逻辑设备到物理设备的映射机制,大概扫了一眼网上的介绍,对我来说看着有点压力,暂时不管了。
# yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
添加Docker稳定版本的yum软件源
# yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
安装最新版Docker-CE
# yum install docker-ce docker-ce-cli containerd.io
提示完成后,启动Docker,设置开机自启
# systemctl start docker
# systemctl enbale docker
建立docker组,并将当前用户加入docker组
# groupadd docker
# usermod -aG docker $USER
测试Docker是否安装正确:
# docker run hello-world
查看Docker状态
# systemctl status docker
3.3 镜像加速
因为使用的腾讯云的服务器,别的文章基本都是阿里云的,这里简单记一下腾讯云镜像加速的方法,与阿里云大同小异。
查看是否存在daemon.json文件:
# ls /etc/docker/
不存在,然后新建一个daemon.json文件:
# touch /etc/docker/daemon.json
编辑daemon.json文件:
# vi /etc/docker/daemon.json
写入内容:
{
"registry-mirrors": [
"https://mirror.ccs.tencentyun.com"
]
}
使其生效:
# systemctl daemon-reload
# systemctl restart docker
检查是否生效:
# docker info
至此,Docker安装完成。
4 Docker 搭建Maven私服
4.1 拉取一个nexus3镜像
# docker pull sonatype/nexus3
4.2 创建并启动一个容器
# docker run -d -p 8081:8081 --name nexus -v /root/nexus-data:/var/nexus-data --restart=always sonatype/nexus3
查看是否成功:
# docker inspect nexus
能看到'Gateway'与'IPAddress'有值说明是启动成功了。
访问一下:
# curl 172.17.0.2:8081
秒返回一大堆HTML。
用浏览器公网访问:
因为我服务器是很便宜的,这个页面加载的好慢......
终于加载出来了。
点击右上方Sign In
登录:
默认初始账号密码为:admin/admin123,但是:
因为Maven私服登录不可以使用明文密码,需要密文密码,进入容器找一哈。
# docker exec -it nexus bash
$ cd /nexus-data/
$ cat admin.password
去掉容器部分,就是密码:
03649c7e-8942-45f6-9906-b0cc5dec53f5
登录成功后会有弹窗:
经过谷歌翻译:
就直接next:
这个不需要翻译,请为admin用户弄个密码;
然后再next:
这个就看不懂了,谷歌:
大概意思就是匿名访问方便吧,我是这么理解的,选中next:
完成了,享受使用的快乐吧!Finish
以下是引自 的解释:
proxy 远程仓库的代理,比如说nexus配置了一个central repository的proxy,当用户向这个proxy请求一个artifact的时候,会现在本地查找,如果找不到,则会从远程仓库下载,然后返回给用户。
hosted 宿主仓库,用户可以把自己的一些仓库deploy到这个仓库中
group 仓库组,是nexus特有的概念,目的是将多个仓库整合,对用户暴露统一的地址,这样就不需要配置多个仓库地址
地址放这,有具体的请去原路径查看。
4.3 创建仓库
点击页面的Create repository
,选择maven2(hosted)
,输入仓库名称(reason-release),在Version policy中选择仓库类型,这里使用默认Release,在Hosted下的Deployment policy中选择Allow redeploy(原路径说这个很重要!)
这个设置为编译类型,设置为跟随编译。
4.4 创建用户
点击左侧菜单栏User
菜单,点击Create local user
,依次填写内容后保存。