一、软件安装方式概述
CentOS安装软件的方式主要包括:
- 源码安装
- rpm安装(二进制安装)
- yum安装(在线安装)
1.源码安装:
源码包是指C等语言所开发的源代码文件的一个压缩包,通常压缩为.tar.gz或.tar.bz2。源码通常需要编译器将其编译成二进制文件,如gcc编译器。
优点:
(1)开源,有能力者可以修改源代码;特别是要对某个软件,从头开发时,就特别需要对源码进行解读分析。
(2)可自由选择所需功能;
(3)卸载方便,直接删除目录即可。
(4)对于学习者而言,源码安装更有利于学习者发现软件环境和工具之间所依赖的关系。
缺点:
(1)安装麻烦,需要自行解决工具之间的依赖关系。
(2)某些软件编译过程耗费的时间较长,我曾发生过编译两三天的情况。尤其是在不合适的硬件上,安装大型软件时,最容易折磨人,甚至要考虑系统与硬件的兼容性、配置等问题,系统本身有缺陷,那就更要命了,有时需先修补系统bug【主要是功能不齐全,残缺情况居多】
(3)大型软件编译,对新手来说较为麻烦,所报错误往往超过所能解决的范围,排错过程有可能会把系统给搞崩溃。
2.rpm安装:
RPM包:由Red Hat公司开发的包管理系统,软件的安装、升级、卸载都非常简单和方便。目前很多Linux发行版都在使用这种包管理机制,包括CentOS、Redhat、Fedora等。软件包文件后缀是".rpm"。
DPKG包:由Debian Linux开发出来的包管理机制,主要应用在Debian和Unbuntu系统中。软件包文件后缀是".deb"。
优点:
(1)包安装与管理简单,往往仅通过几个命令即可实现包的安装、升级、查询和卸载。
(2)通常安装速度要比源码安装快很多;
缺点:
(1)二进制文件,看不到源码了,修改和分析源码已不太可能。
(2)模块功能已经被定制,用户功能选择远不如源码灵活;
(3)有时也需要解决依赖性的问题,此时解决依赖性有一定的困难。
3.yum安装:
yum软件仓库是为了进一步简化RPM管理软件的难度以及自动分析所需软件包及其依赖关系的技术。
yum的关键之处是要有可靠的respository(保证能够连接互联网,还需要保证它是一个互联网上正常可用的仓库)。
它能够从指定服务器自动下载rpm包并安装。yum能够自动解决软件依赖性问题,一次性安装所有依赖的软件包。
4.yum安装与卸载的相关命令
安装命令:yum -y install 软件名
升级命令:yum -y install 软件名
升级所有软件:yum -y install
卸载命令:yum remove 软件名
列出可安装的软件包:yum list
列出已安装的软件包:yum list installed
查询某个软件包:yum list 软件名
根据关键字搜索软件包:yum search Keyword
清除缓存:yum clean all
二、JDK的安装与配置
1.从yum仓库中搜索jdk:yum search jdk
2.安装jdk:
yum -y install java-17-openjdk-devel.x86_64
3.看看jdk的安装目录:
which java
ls -l /usr/bin/java
ls -l /etc/alternatives/java
4.centos当中配置环境变量,在/etc/profile文件中配置环境变量:
注意:windows操作系统当中使用 ;进行分割路径
linux操作系统当中,环境变量路径和路径之间采用 :分割
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-17.0.14.0.7-2.el9.x86_64
export CLASSPATH=.:$JAVA_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin
windows当中取环境变量 JAVA_HOME=xxxxx %JAVA_HOME%
linux当中$JAVA_HOME
注意:上面版本没对上,写错了,记得要改
5.生效:source /etc/profile
三、Tomcat服务器的安装与配置
1.Tomcat是Java语言实现的,因此使用Tomcat服务器的前提是:已经安装并配置了Java环境。
2.下载Tomcat
下载tomcat10
3.使用FTP工具将以上压缩包上传到CentOS。
4.解压到当前目录下
5.第三方软件一般存放在/usr/local目录下,使用mv命令tomcat移动到该目录下
6.为了方便配置环境变量,将目录名重命名
现在Tomcat服务器的根路径是:/usr/local/tomcat10
7.配置环境变量
让环境变量生效:
8.启动Tomcat
9.查看服务器IP地址
10.关闭防火墙
11.打开windows上的浏览器,输入地址访问
12.关闭tomcat服务器
服务器关闭之后,重新打开一个全新的浏览器,再次输入访问地址,会发现无法访问了。
四、 MySQL的安装与配置
1.MySQL8的安装
以下是在CentOS Stream系统上安装MySQL8的步骤:
更新系统软件包
使用以下命令更新CentOS Stream系统上的软件包:
dnf update
安装MySQL8需要更新系统上的软件包是因为MySQL8需要使用一些较新的依赖库和工具,而CentOS Stream默认的软件包版本可能较旧,无法满足MySQL8的要求。更新系统上的软件包可以确保系统中的依赖库和工具版本与MySQL8的要求相匹配,从而保证MySQL8的正常运行。
dnf和yum都是CentOS中的包管理器,它们的作用是安装、升级、删除软件包以及解决软件包依赖关系。它们的区别如下:
- 语法不同:dnf命令的语法更加简洁,而yum命令的语法相对较长。
- 性能不同:dnf命令在处理软件包时的性能比yum命令更好,因为dnf使用了更高效的算法。
- 依赖关系处理不同:dnf命令在处理软件包依赖关系时更加智能,能够自动选择最佳的依赖关系解决方案。
- 使用的库不同:dnf命令使用了更加现代化的libdnf库,而yum命令使用了较老的yum库。
- 可用插件不同:dnf命令支持更多的插件,可以实现更多的功能。
总的来说,dnf命令是yum命令的升级版本,它在性能、依赖关系处理和可用插件等方面都更加优秀。
⑴. 添加MySQL Yum存储库
使用以下命令将MySQL Yum存储库添加到系统中:
dnf install https://dev.mysql.com/get/mysql80-community-release-el9-5.noarch.rpm
MySQL Yum存储库怎么获取?如下图所示:从mysql官网获取
⑵.导入mysql公钥
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
⑶.安装MySQL 8
dnf install mysql-community-server
⑷.启动MySQL服务
systemctl start mysqld
⑸.设置MySQL开机自启
systemctl enable mysqld
⑹.查看root账户的临时密码
grep 'temporary password' /var/log/mysqld.log
⑺.配置MySQL安全设置
mysql_secure_installation
按照提示输入密码并回答问题,完成安全设置。
⑻. 登录MySQL
mysql -u root -p
完成以上步骤后,您就可以在CentOS Stream系统上安装并使用MySQL 8了。
2.MySQL8设置字符集
⑴.查看MySQL8字符集
在MySQL命令行界面中输入以下命令:
show variables like '%character%';
2.如果字符集不是utf8,可以在/etc/my.cnf文件中进行配置,在[mysqld]下面添加如下配置:/etc/my.cnf是mysql的配置文件。
[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_general_ci
保存并退出。
3. 重启MySQL服务
在终端中输入以下命令:
systemctl restart mysqld
4.再次查看MySQL8的字符集是否为utf8
3.在MySQL8中为Java程序员创建专属的MySQL用户
首先,以root用户身份登录MySQL:
mysql -u root -p
创建一个新的数据库,例如项目是oa项目,一般创建一个数据库叫做oa:
create database oa;
然后,创建一个新用户并设置密码:
CREATE USER 'java_dev'@'%' IDENTIFIED BY 'java_DEV123';
用户名:java_dev
密码:java_DEV123
CREATE USER
- 作用:创建一个新的数据库用户。
- 注意:执行此命令需要管理员权限(如
root
用户)。
'java_dev'@'%'
- 用户名:
java_dev
(用于应用程序连接数据库的身份标识)。 - 主机限制:
@'%'
中的%
是通配符,表示该用户可以从任何 IP 地址或主机连接到数据库。- 若改为
'java_dev'@'localhost'
,则该用户只能从本地连接。 - 若改为
'java_dev'@'192.168.1.%'
,则限制为特定网段的 IP 可连接。
- 若改为
IDENTIFIED BY 'java_DEV123'
- 密码:
java_DEV123
(区分大小写)。 - 密码策略:需符合数据库的密码复杂度要求(如长度、字符类型等)。
接下来,为该用户授予开发者专有的权限:
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, ALTER, INDEX, REFERENCES ON oa.* TO 'java_dev'@'%';
接下来,刷新权限:
FLUSH PRIVILEGES;
最后,关闭centos的防火墙:
systemctl stop firewalld
现在,Java程序员可以使用用户名和密码连接到MySQL并拥有开发者专有的权限。
五、 WEB应用的部署
在进行以下的web应用部署时,请确保以上的JDK17、Tomcat10、MySQL8已经安装成功。
1. 初始化数据库
1. 这里使用navicat for mysql工具。
2. 先在navicat for mysql工具中创建连接。
3. 如果项目名叫做oa,那么创建一个数据库oa。
4. 执行sql脚本文件(oa.sql)完成数据初始化。
2. 将项目中连接数据库的信息进行修改,例如:url、username、password等信息。
3.在IDEA当中,使用maven将项目以war的形式打包。
4.将war包上传到Tomcat的webapps目录下。
5.启动Tomcat服务器,war包自动解压。war解压之后的目录就是web应用。
6.打开浏览器,输入访问地址访问。
7.实时查看Tomcat服务器后台日志
切换到CATALINA_HOME/logs目录下,执行以下命令,可以实时查看tomcat服务器日志
tail -f catalina.out
六、将WEB应用部署到阿里云
1.购买阿里云服务器
注册阿里云账号
购买阿里云服务器
阿里云首页
新用户可以免费试用
使用xshell/xftp连接阿里云服务器
默认情况下阿里云服务器的“密码认证”是没有开启的。需要通过修改相关配置,来开启“密码认证”。
在阿里云服务器实例中找到如下图的VNC连接:
然后输入用户名root和密码。登录成功之后找到该文件:/etc/ssh/sshd_config
使用vim编辑sshd_config文件中的“passwordAuthcation”,将no修改为yes。
重启sshd服务:service sshd restart
此时采用xshell/xftp就可以使用密码的方式连接阿里云服务器了。
2.使用宝塔面板安装软件及部署项目
在centos操作系统上安装宝塔面板(这个安装脚本可以在宝塔面板官网获取):
yum install -y wget && wget -O install.sh
https://download.bt.cn/install/install_6.0.sh && sh install.sh ed8484bec
宝塔面板安装成功后,会有如下信息:
外网面板地址: https://39.105.26.215:10710/718e1e35
内网面板地址: https://172.25.179.225:10710/718e1e35
username: uck3itew
password: 3268d738
通过以上宝塔面板地址得知使用的端口是10710,所以需要在阿里云服务器上开放该端口(配置安全组):
访问宝塔面板:
输入用户名和密码登录宝塔面板:
注册宝塔账号并绑定:
宝塔Linux面板的左侧菜单中找:软件商店
搜索tomcat,安装tomcat9,会自动关联安装JDK8。
JDK8也有了:
注意:阿里云服务器有两个防火墙,一个是阿里云服务器自带的防火墙,在安全组中进行放行设置。
阿里云服务器中安装的centos操作系统也会有一个防火墙,要访问tomcat服务器的话,centos操作系统中的防火墙也要放行8080端口:这个需要在宝塔中进行配置,如下:
这样tomcat服务器就可以访问了:
mysql数据库的3306端口同样需要在宝塔中放行。这样mysql数据库才可以连接:
连接mysql数据库,报错信息如下:
root账户只能在阿里云电脑上使用
解决办法:
第一步:root身份登录mysql
第二步:use mysql;
第三步:update user set host='%' where user='root';
第四部:flush privileges;
初始化数据库:将提前准备好的oa.sql文件初始化到数据库当中。表emp表。确保表中有数据。
要修改一下,重新打包
将war包放到tomcat服务器的webapps目录下,启动tomcat服务器之后war包自动解压。
启动tomcat服务器,在浏览器上访问:
写程序用的版本与在阿里云服务器上的版本不一致
要么代码版本改小,要么用tomcat10