服务器:jdk的安装和配置
我们的项目是java开发的,所以虚拟机中也必须要有jdk该运行环境开可以正常的运行
1.jdk的下载
Linux查看端口: netstat -anp |more
2.在服务器中创建一个指定安装软件的目录
# 创建CustomSoftware目录
[root@Zcl2001 ~]# mkdir /usr/local/CustomSoftware
# 进入CustomSoftware目录
[root@Zcl2001 ~]# cd /usr/local/CustomSoftware
# 查看目录文件
[root@Zcl2001 CustomSoftware]# ll
总用量 0
[root@Zcl2001 CustomSoftware]#
3.上传文件
将下载的jdk压缩包上传到虚拟机中
4.解压文件
1、运行前置目录查看是否有安装的jdk
[root@Zcl2001 CustomSoftware]# java
-bash: java: 未找到命令
[root@Zcl2001 CustomSoftware]# javac
-bash: javac: 未找到命令
[root@Zcl2001 CustomSoftware]#
1、运行前置目录查看是否有安装的jdk
# 解压文件
[root@Zcl2001 CustomSoftware]# tar -zxvf jdk1.8-linux-x64.tar.gz
# 修改解压后的文件夹名称
[root@Zcl2001 CustomSoftware]# mv jdk1.8.0_333/ jdk1.8
[root@Zcl2001 CustomSoftware]# ll
总用量 144544
drwxr-xr-x 8 10143 10143 4096 4月 26 14:03 jdk1.8
# 删除原来文件
[root@Zcl2001 CustomSoftware]# rm -f jdk1.8-linux-x64.tar.gz
5.配置JDK环境
Linux的环境变量配置文件在
/etc/profile
中,通过编辑进入里面进行添加修改即可•环境永久生效:
•针对用户:~/.bashrc文件中配置
•针对全部用户:/etc/profile文件中配置
1.进入环境变量文件
进入文件后只能查看不能编辑,需要按住键盘上的Ins键切换编辑状态
# 进入文件
[root@Zcl2001 CustomSoftware]# vim /etc/profile
2.配置jdk环境变量
# 配置jdk环境变量
JAVA_HOME=/usr/local/CustomSoftware/jdk1.8
CLASSPATH=$JAVA_HOME/lib/
PATH=$PATH:$JAVA_HOME/bin
export PATH JAVA_HOME CLASSPATH
3.退出编辑
4.使用配置环境生效:
[root@Zcl2001 CustomSoftware]# source /etc/profile
5.测试java环境是否成功
# 测试java
[root@Zcl2001 CustomSoftware]# java
# 测试javac编译环境
[root@Zcl2001 CustomSoftware]# javac
# 查看java版本
[root@Zcl2001 CustomSoftware]# java -version
服务器:mysql的安装
RPM安装MySQL8.0.29数据库
mysql是项目的数据核心,没有数据库项目也就运行不了,下面将继续最新版本的数据库安装以及开放远程连接
3.1、官网下载地址
MySQL :: Download MySQL Community Server
3.2上传到Linux系统目录
3.2.1 解压文件
# 创建文件
[root@Zcl2001 CustomSoftware]# mkdir mysql8.0.29
# 解压到指定的文件
[root@Zcl2001 CustomSoftware]# tar -xvf mysql-8.0.29-1.el7.x86_64.rpm-bundle.tar -C ./mysql8.0.29
3.2.2 查看解压后的文件
# 进入文件
[root@Zcl2001 CustomSoftware]# cd mysql8.0.29/
[root@Zcl2001 mysql8.0.29]# ll
总用量 1609164
-rw-r--r-- 1 root root 823879680 7月 17 10:02 mysql-8.0.29-1.el7.x86_64.rpm-bundle.tar
-rw-r--r-- 1 7155 31415 14668996 3月 24 19:43 mysql-community-client-8.0.29-1.el7.x86_64.rpm
-rw-r--r-- 1 7155 31415 2574424 3月 24 19:43 mysql-community-client-plugins-8.0.29-1.el7.x86_64.rpm
-rw-r--r-- 1 7155 31415 648680 3月 24 19:43 mysql-community-common-8.0.29-1.el7.x86_64.rpm
-rw-r--r-- 1 7155 31415 445936940 3月 24 19:44 mysql-community-debuginfo-8.0.29-1.el7.x86_64.rpm
-rw-r--r-- 1 7155 31415 1949700 3月 24 19:44 mysql-community-devel-8.0.29-1.el7.x86_64.rpm
-rw-r--r-- 1 7155 31415 4214948 3月 24 19:44 mysql-community-embedded-compat-8.0.29-1.el7.x86_64.rpm
-rw-r--r-- 1 7155 31415 2216040 3月 24 19:45 mysql-community-icu-data-files-8.0.29-1.el7.x86_64.rpm
-rw-r--r-- 1 7155 31415 1575404 3月 24 19:45 mysql-community-libs-8.0.29-1.el7.x86_64.rpm
-rw-r--r-- 1 7155 31415 683148 3月 24 19:45 mysql-community-libs-compat-8.0.29-1.el7.x86_64.rpm
-rw-r--r-- 1 7155 31415 55984868 3月 24 19:45 mysql-community-server-8.0.29-1.el7.x86_64.rpm
-rw-r--r-- 1 7155 31415 22960584 3月 24 19:46 mysql-community-server-debug-8.0.29-1.el7.x86_64.rpm
-rw-r--r-- 1 7155 31415 270450256 3月 24 19:47 mysql-community-test-8.0.29-1.el7.x86_64.rpm
3.3、执行安装操作
1、进行安装install
[root@Zcl2001 mysql8.0.29]# yum -y install perl
2、删除mariadb
如果不删除会与mysql冲突
# 使用管道查询是否有
[root@Zcl2001 mysql8.0.29]# rpm -qa | grep mariadb
mariadb-libs-5.5.68-1.el7.x86_64
# 删除mariadb
[root@Zcl2001 mysql8.0.29]# rpm -e mariadb-libs-5.5.68-1.el7.x86_64 --nodeps
[root@Zcl2001 mysql8.0.29]# rpm -qa | grep mariadb
3、执行安装rpm安装包(有先后依赖顺序)
[root@Zcl2001 mysql8.0.29]# rpm -hiv mysql-community-common-8.0.29-1.el7.x86_64.rpm
[root@Zcl2001 mysql8.0.29]# rpm -hiv mysql-community-client-plugins-8.0.29-1.el7.x86_64.rpm
[root@Zcl2001 mysql8.0.29]# rpm -hiv mysql-community-libs-8.0.29-1.el7.x86_64.rpm
[root@Zcl2001 mysql8.0.29]# rpm -hiv mysql-community-client-8.0.29-1.el7.x86_64.rpm
[root@Zcl2001 mysql8.0.29]# rpm -hiv mysql-community-icu-data-files-8.0.29-1.el7.x86_64.rpm
[root@Zcl2001 mysql8.0.29]# rpm -hiv mysql-community-server-8.0.29-1.el7.x86_64.rpm
如果在安装mysql-community-server-8.0.29-1.el7.x86_64.rpm 出现如下错误只需运行yum install libaio代码即可
[root@Zcl2001 mysql8.0.29]# rpm -hiv mysql-community-server-8.0.29-1.el7.x86_64.rpm
警告:mysql-community-server-8.0.29-1.el7.x86_64.rpm: 头V4 RSA/SHA256 Signature, 密钥 ID 3a79bd29: NOKEY
错误:依赖检测失败:
libaio.so.1()(64bit) 被 mysql-community-server-8.0.29-1.el7.x86_64 需要
libaio.so.1(LIBAIO_0.1)(64bit) 被 mysql-community-server-8.0.29-1.el7.x86_64 需要
libaio.so.1(LIBAIO_0.4)(64bit) 被 mysql-community-server-8.0.29-1.el7.x86_64 需要
# 下载依赖解(不同版本依赖不同)
[root@Zcl2001 mysql8.0.29]# yum install libaio
3.4、运行MySQL
running
状态代表启动成功
# 启动mysql
[root@Zcl2001 mysql8.0.29]# systemctl start mysqld
# 查看mysql启动状态
[root@Zcl2001 mysql8.0.29]# systemctl status mysqld
● mysqld.service - MySQL Server
Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
Active: active (running) since 日 2022-07-17 10:20:25 CST; 6s ago
Docs: man:mysqld(8)
http://dev.mysql.com/doc/refman/en/using-systemd.html
Process: 29755 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)
Main PID: 29933 (mysqld)
Status: "Server is operational"
CGroup: /system.slice/mysqld.service
└─29933 /usr/sbin/mysqld
7月 17 10:20:18 Zcl2001 systemd[1]: Starting MySQL Server...
7月 17 10:20:25 Zcl2001 systemd[1]: Started MySQL Server.
[root@Zcl2001 mysql8.0.29]#
配置
主要配置管理员用户root的密码以及配置允许远程登录的权限
获取MySQL的初始密码
通过grep命令,在/var/log/mysqld.log文件中,过滤temporary password关键字,得到初始密码
具体命令:grep ‘temporary password’ /var/log/mysqld.log
[root@VM-12-8-centos ~]# grep 'temporary password' /var/log/mysqld.log
2022-11-04T01:28:11.706244Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: ,Xmvabw%C0x*
根据初始密码登陆mysql
[root@VM-12-8-centos ~]# mysql -uroot -p,Xmvabw%C0x*
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 11
Server version: 8.0.28
Copyright (c) 2000, 2022, Oracle and/or its affiliates.
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,可以直接打开该日记文件查看最后面的内容,因为通过上面的命令过滤出来的密码可能是之前安装的mysql保留的,需要查看最下面(或者在卸载mysql的时候也吧该日记文件卸载)
修改密码
在MySQL8.0.4以前,执行SET PASSWORD=PASSWORD(‘[修改的密码]’);就可以更改密码。
MySQL8.0.4开始,需要执行 ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH MYSQL_NATIVE_PASSWORD BY ‘新密码’;在MySQL控制台内执行
ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘密码’;
!- 密码需要符合:大于8位,有大写字母,有特殊符号,不能是连续的
简单语句如123,abc
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH MYSQL_NATIVE_PASSWORD BY 'MySQL123!';
Query OK, 0 rows affected (0.02 sec)
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MySQL123@';
1、根据上面修改密码后查看初始化的密码策略
mysql> SHOW VARIABLES LIKE 'validate_password%';
+--------------------------------------+--------+
| Variable_name | Value |
+--------------------------------------+--------+
| validate_password.check_user_name | ON |
| validate_password.dictionary_file | |
| validate_password.length | 8 |
| validate_password.mixed_case_count | 1 |
| validate_password.number_count | 1 |
| validate_password.policy | MEDIUM |
| validate_password.special_char_count | 1 |
+--------------------------------------+--------+
7 rows in set (0.01 sec)
2、根据策列配置root的简单密码
我们可以给root设置简单密码,如123456.
请注意,此配置仅仅是用于测试环境或学习环境的MySQL,如果是正式使
用,请勿设置简单密码
# 如果你想设置简单密码,需要降低Mysql的密码安全级别
set global validate_password_policy=LOW; # 密码安全级别低
#validate_password_policy取值
0 or LOW 只验证长度
1 or MEDIUM 验证长度、数字、大小写、特殊字符
2 or STRONG 验证长度、数字、大小写、特殊字符、字典文件
set global validate_password_length=4; # 密码长度最低4位即可
# 然后就可以用简单密码了(课程中使用简单密码,为了方便,生产中=不要这样)
ALTER USER 'root'@'localhost' IDENTIFIED BY '简单密
码';
[扩展],配置root运行远程登录
默认情况下,root用户是不运行远程登录的,只允许在MySQL所在的
Linux服务器登陆MySQL系统
请注意,允许root远程登录会带来安全风险
# 授权root远程登录
grant all privileges on *.* to root@"IP地址" identified by '密码' with grant option;
# IP地址即允许登陆的IP地址,也可以填写%,表示允许任何地址
# 密码表示给远程登录独立设置密码,和本地登陆的密码可以不同
# 刷新权限,生效
flush privileges;
上面配置的远程登陆不知道行不行,以下是实验过可行的:
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: 0 Changed: 0 Warnings: 0
# 刷新权限,生效
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql>
退出MySQL控制台页面
# 退出命令
exit
# 或者通过快捷键退出:ctrl + d
检查端口
MySQL默认绑定了3306端口,可以通过端口占用检查MySQL的网络状态
netstat -anp | grep 3306
实用操作
ctrl + c 强制停止
•Linux某些程序的运行,如果想要强制停止它,可以使用快捷键ctrl + c
•命令输入错误,也可以通过快捷键ctrl + c,退出当前输入,重新输入
ctrl + d 退出或登出
•可以通过快捷键:ctrl + d,退出账户的登录
•或者退出某些特定程序的专属页面
ps:不能用于退出vi/vim
历史命令搜索
•可以通过:!命令前缀,自动执行上一次匹配前缀的命令
•可以通过快捷键:ctrl + r,输入内容去匹配历史命令
快速移动光标
•ctrl + a,跳到命令开头
•ctrl + e,跳到命令结尾
•ctrl + 键盘左键,向左跳一个单词
•ctrl + 键盘右键,向右跳一个单词
清屏
•通过快捷键ctrl + l,可以清空终端内容
•或通过命令clear得到同样效果
systemctl****命令
Linux系统很多软件(内置或第三方)均支持使用systemctl命令控制:启动、停止、开机自启
能够被systemctl管理的软件,一般也称之为:服务
语法:
•start 启动
•stop 关闭
•status 查看状态
•enable 开启开机自启
•disable 关闭开机自启
系统内置的服务比较多,比如:
•NetworkManager,主网络服务
•network,副网络服务
•firewalld,防火墙服务
•sshd,ssh服务(FinalShell远程登录Linux使用的就是这个服务)
现在可以使用systemctl去尝试一下,控制这些服务的启动、关闭、自启动啦
systemctl命令的作用是?
可以控制软件(服务)的启动、关闭、开机自启动
•系统内置服务均可被systemctl控制
•第三方软件,如果自动注册了可以被systemctl控制
第三方软件,如果没有自动注册,可以手动注册(后续学习
修改Linux系统时区
我们发现,通过date查看的日期时间是不准确的,这是因为:系统默认时区非中国的东八区。
使用root权限,执行如下命令,修改时区为东八区时区
将系统自带的localtime文件删除,并将/usr/share/zoneinfo/Asia/Shanghai文件链接为localtime文件即可
ip地址和主机名
0.0.0.0,特殊IP地址**
•可以用于指代本机
•可以在端口绑定中用来确定绑定关系(后续讲解)
•在一些IP地址限制中,表示所有IP的意思,如放行规则设置为0.0.0.0,表示允许任意IP访问
在Linux中修改主机名
•可以使用命令:hostname查看主机名
•可以使用命令:hostnamectl set-hostname 主机名,修改主机名(需root)
•重新登录FinalShell即可看到主机名已经正确显示
3. 什么是域名解析(主机名映射)
可以通过主机名找到对应计算机的IP地址,这就是主机名映射(域名解析)
先通过系统本地的记录去查找,如果找不到就联网去公开DNS服务器去查找
ping****命令
可以通过ping命令,检查指定的网络服务器是否是可联通状态
语法:
•选项:-c,检查的次数,不使用-c选项,将无限次数持续检查
•参数:ip或主机名,被检查的服务器的ip地址或主机名地址
示例:
•检查到baidu.com是否联通
结果表示联通,延迟8ms左右
•检查到39.156.66.10是否联通,并检查3次
wget****命令
wget是非交互式的文件下载器,可以在命令行内下载网络文件
语法:
•选项:-b,可选,后台下载,会将日志写入到当前工作目录的wget-log文件
•参数:url,下载链接
示例:
•下载apache-hadoop 3.3.0版本:wget http://archive.apache.org/dist/hadoop/common/hadoop-3.3.0/hadoop-3.3.0.tar.gz
•在后台下载:wget -b http://archive.apache.org/dist/hadoop/common/hadoop-3.3.0/hadoop-3.3.0.tar.gz
•通过tail命令可以监控后台下载进度:tail -f wget-log
curl****命令
curl可以发送http网络请求,可用于:下载文件、获取信息等
语法:
•选项:-O,用于下载文件,当url是下载链接时,可以使用此选项保存文件
•参数:url,要发起请求的网络地址
进程
\1. 什么是进程?
进程是指程序在操作系统内运行后被注册为系统内的一个进程,并拥有独立的进程ID(进程号)
\2. 管理进程的命令
•ps -ef 查看进程信息
•ps -ef | grep 关键字 过滤指定关键字进程信息
•kill [-9] 进程号 关闭指定进程号的进程
查看****系统资源占用
•可以通过top命令查看CPU、内存使用情况,类似Windows的任务管理器
默认每5秒刷新一次,语法:直接输入top即可,按q或ctrl + c退出
top****命令内容详解
•第一行:
top:命令名称,14:39:58:当前系统时间,up 6 min:启动了6分钟,2 users:2个用户登录,load:1、5、15分钟负载
•第二行:
Tasks:175个进程,1 running:1个进程子在运行,174 sleeping:174个进程睡眠,0个停止进程,0个僵尸进程
•第三行:
%Cpu(s):CPU使用率,us:用户CPU使用率,sy:系统CPU使用率,ni:高优先级进程占用CPU时间百分比,id:空闲CPU率,wa:IO等待CPU占用率,hi:CPU硬件中断率,si:CPU软件中断率,st:强制等待占用CPU率
•第四、五行:
Kib Mem:物理内存,total:总量,free:空闲,used:使用,buff/cache:buff和cache占用
KibSwap:虚拟内存(交换空间),total:总量,free:空闲,used:使用,buff/cache:buff和cache占用
•PID:进程id
•USER:进程所属用户
•PR:进程优先级,越小越高
•NI:负值表示高优先级,正表示低优先级
•VIRT:进程使用虚拟内存,单位KB
•RES:进程使用物理内存,单位KB
•SHR:进程使用共享内存,单位KB
•S:进程状态(S休眠,R运行,Z僵死状态,N负数优先级,I空闲状态)
•%CPU:进程占用CPU率
•%MEM:进程占用内存率
•TIME+:进程使用CPU时间总计,单位10毫秒
•COMMAND:进程的命令或名称或程序文件路径
top命令也支持选项:
配置环境变量:
\1. 什么是环境变量?
环境变量是一组信息记录,类型是KeyValue型(名称=值),用于操作系统运行的时候记录关键信息
\2. 通过env命令可以查看当前系统配置的环境变量信息
\3. 通过$符号,可以取出环境变量的值
\4. 什么是PATH,作用是?
环境变量PATH会记录一组目录,目录之间用:隔开。这里记录的是命令的搜索路径,当执行命令会从记录中记录的目录中挨个搜索要执行的命令并执行。
可以通过修改这个项目的值,加入自定义的命令搜索路径
如export PATH=$PATH:自定义路径
\5. 如何修改环境变量?
•临时生效:export 名称=值
•永久生效:
•针对用户:~/.bashrc文件中配置
•针对全部用户:/etc/profile文件中配置
•配置完成,可以通过source命令立刻生效
文件上传和下载
\1. 如何使用FinalShell对Linux系统进行上传下载操作?
\2. rz、sz命令
•通过 yum -y install lrzsz可以安装此命令
•rz进行文件上传
•sz 文件,进行文件下载
软件安装和卸载
1.掌握使用yum为CentOS系统安装软件
2.掌握使用apt为Ubuntu安装软件(扩展
linux系统的应用软件
操作系统安装软件有许多种方式,一般分为:
•下载安装包自行安装
•如win系统使用exe文件、msi文件等
•如mac系统使用dmg文件、pkg文件等
•系统的应用商店内安装
•如win系统有Microsoft Store商店
•如mac系统有AppStore****商店=
Linux系统同样支持这两种方式,我们首先,先来学习使用:Linux命令行内的”应用商店”,yum命令安装软件
yum****命令
rpm: rpm命令是RPM软件包的管理工具
用法: rpm [选项…]
常用参数:
-a | 查询所有的软件包 |
---|---|
-b或-t | 设置包装套件的完成阶段,并指定套件档的文件名称; |
-c | 只列出组态配置文件,本参数需配合”-l”参数使用 |
-d | 只列出文本文件,本参数需配合”-l”参数使用 |
-e | 卸载软件包 |
-f | 查询文件或命令属于哪个软件包 |
-h | 安装软件包时列出标记 |
-i | 安装软件包 |
-l | 显示软件包的文件列表 |
-p | 查询指定的rpm软件包 |
-q | 查询软件包 |
-R | 显示软件包的依赖关系 |
-s | 显示文件状态,本参数需配合”-l”参数使用 |
-U | 升级软件包 |
-v | 显示命令执行过程 |
-vv | 详细显示指令执行过程 |
参考实例
正常安装软件包:
[root@linuxcool ~]# rpm -ivh cockpit-185-2.el8.x86_64.rpm
Verifying... ################################# [100%]
Preparing... ################################# [100%]
package cockpit-185-2.el8.x86_64 is already installed
显示系统已安装过的全部RPM软件包:
[root@linuxcool ~]# rpm -qa
qemu-kvm-block-gluster-2.12.0-63.module+el8+2833+c7d6d092.x86_64
boost-atomic-1.66.0-6.el8.x86_64
gnome-session-wayland-session-3.28.1-6.el8.x86_64
grub2-tools-2.02-66.el8.x86_64
lohit-gurmukhi-fonts-2.91.2-3.el8.noarch
liberation-fonts-common-2.00.3-4.el8.noarch
policycoreutils-python-utils-2.8-16.1.el8.noarch
………………省略部分输出信息………………
查询某个软件的安装路径:
[root@linuxcool ~]# rpm -ql cockpit
/usr/share/cockpit
/usr/share/doc/cockpit/AUTHORS
/usr/share/doc/cockpit/COPYING
/usr/share/doc/cockpit/README.md
/usr/share/man/man1/cockpit.1.gz
/usr/share/metainfo/cockpit.appdata.xml
/usr/share/pixmaps/cockpit.png
卸载某个通过RPM软件包安装的服务:
[root@linuxcool ~]# rpm -evh cockpit
Preparing... ################################# [100%]
Cleaning up / removing...
1:cockpit-185-2.el8 ################################# [100%]
升级某个软件包:
[root@linuxcool ~]# rpm -Uvh cockpit-185-2.el8.x86_64.rpm
Verifying... ################################# [100%]
Preparing... ################################# [100%]
Updating / installing...
1:cockpit-185-2.el8 ################################# [100%]
yum:RPM包软件管理器,用于自动化安装配置Linux软件,并可以自动解决依赖问题。
语法:
•选项:-y,自动确认,无需手动确认安装或卸载过程
•install:安装
•remove:卸载
•search:搜索
yum命令需要root权限哦,可以su切换到root,或使用sudo提权。
yum命令需要联网
下载工具:
0.安装wget
yum install wget
**1、使用wget下载单个文件 **
以下的例子是从网络下载一个文件并保存在当前目录
wget http://mirrors.163.com/.help/CentOS7-Base-163.repo