打破“闭源”主义的软件基石——Linux(13):Linux系统的维护管理(软件安装示例)

本文介绍了作者分享的SpringBoot项目初始化模板,涵盖了组件集成、配置管理、备份策略以及JDK、Tomcat和MySQL的安装、维护和安全设置,提供了解决Linux环境中软件管理的实用方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

该文章Github地址:https://github.com/AntonyCheng/linux-notes【有条件的情况下推荐直接访问GitHub以获取最新的代码更新】

在此介绍一下作者开源的SpringBoot项目初始化模板(Github仓库地址:https://github.com/AntonyCheng/spring-boot-init-template【有条件的情况下推荐直接访问GitHub以获取最新的代码更新】& CSDN文章地址:https://blog.csdn.net/AntonyCheng/article/details/136555245),该模板集成了最常见的开发组件,同时基于修改配置文件实现组件的装载,除了这些,模板中还有非常丰富的整合示例,同时单体架构也非常适合SpringBoot框架入门,如果觉得有意义或者有帮助,欢迎Star & Issues & PR!

上一章:打破“闭源”主义的软件基石——Linux(12):Linux系统的维护管理(Shell脚本开发)

4.Linux系统的管理与维护

4.4.服务器端应用程序安装

开辟退路

备份配置文件

Linux系统环境下通常内容都很多,如果不小心修改了不该修改的地方,自己又不记得做了修改,那么将来报错很难找到这个错误的位置;

为了避免这样的问题,我们可以在修改任何配置文件之前都多复制一份:把原始、纯净、正确的配置文件执行了备份,将来万一发生问题,就拿这个原始配置文件去覆盖错误的配置文件,瞬间恢复到正确状态可以重新开始;

拍摄快照
用法一

针对需要通过安装过程来安装的程序,如果安装失败,需要卸载后重新安装,那么最好是卸载干净再重新执行安装,Linux环境下不方便执行清理残留,为了避免安装失败以后没有退路可以重新开始,建议在执行安装之前拍摄快照,一旦发生问题,可以恢复快照,重新开始;

用法二

对于已经安装好的程序(特别是系统当中安装了很多程序都已经成功),强烈建议通过拍摄快照的方式来保留这个正确的状态;

具体操作

保存快照

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

恢复快照

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

删除快照

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

安装JDK

rpm命令

rpm是Redhat package management缩写,实质上来说,通过rpm可以管理Linux环境下的安装包。

参数名作用
-qa查询系统中已经安装的程序,通常配合管道,使用grep精确匹配想要查询的包
-ivh执行rpm包安装操作
-e卸载rpm包
–nodeps在卸载过程中忽略依赖关系
卸载系统预装的JDK

查询系统中已经安装的JDK

[root@apple ~]# rpm -qa | grep openjdk
java-1.8.0-openjdk-headless-1.8.0.161-2.b14.el7.x86_64
java-1.7.0-openjdk-1.7.0.171-2.6.13.2.el7.x86_64
java-1.8.0-openjdk-1.8.0.161-2.b14.el7.x86_64
java-1.7.0-openjdk-headless-1.7.0.171-2.6.13.2.el7.x86_64

执行卸载,卸载过程中使用–nodeps忽略依赖关系

[root@apple ~]# rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.161-2.b14.el7.x86_64
[root@apple ~]# rpm -e --nodeps java-1.7.0-openjdk-1.7.0.171-2.6.13.2.el7.x86_64
[root@apple ~]# rpm -e --nodeps java-1.8.0-openjdk-1.8.0.161-2.b14.el7.x86_64
[root@apple ~]# rpm -e --nodeps java-1.7.0-openjdk-headless-1.7.0.171-2.6.13.2.el7.x86_64

重启系统生效

解压JDK的tar包配置环境变量
解压JDK的tar包
cd /opt
tar -zxvf /opt/jdk-8u121-linux-x64.tar.gz
配置JDK相关环境变量

配置环境变量的配置文件:/etc/profile

为了避免配置错误导致运行失败,提前复制一份/etc/profile

cp /etc/profile /etc/profile.bak

编辑/etc/profile文件

# 声明JAVA_HOME环境变量,等号两边不能有空格
JAVA_HOME=/opt/jdk1.8.0_121

# 在PATH环境变量原有的值基础上附加JDK的path值,$JAVA_HOME是对JAVA_HOME环境变量的引用
PATH=$JAVA_HOME/bin:$PATH

# 将JAVA_HOME和PATH发布为全局变量
export JAVA_HOME PATH

保存退出vim后,使用source命令执行/etc/profile脚本,让脚本中发布的环境变量生效。但是仅限于当前进程,如果想让新环境变量全局生效,可以reboot。

source /etc/profile

验证一下:

[root@apple jdk1.8.0_121]# echo $JAVA_HOME
/opt/jdk1.8.0_121

[root@apple jdk1.8.0_121]# echo $PATH
/opt/jdk1.8.0_121/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

[root@apple jdk1.8.0_121]# java -version
java version "1.8.0_121"
Java(TM) SE Runtime Environment (build 1.8.0_121-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.121-b13, mixed mode)

安装Tomcat

解压
tar -zxvf /opt/apache-tomcat-7.0.75.tar.gz
操控

启动Tomcat

/opt/apache-tomcat-7.0.75/bin/startup.sh

停止Tomcat

/opt/apache-tomcat-7.0.75/bin/shutdown.sh

查看日志

tail -f /opt/apache-tomcat-7.0.75/logs/catalina.out

部署war包放在webapps目录下

/opt/apache-tomcat-7.0.75/webapps
访问

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

MySQL安装步骤

以下是mysql5的安装步骤,mysql8请见Linux安装Mysql8.md

卸载系统预装mariadb
rpm -e --nodeps mariadb-libs-1:5.5.56-2.el7.x86_64
安装服务器端程序
rpm -ivh /opt/MySQL-server-5.5.52-1.el6.x86_64.rpm

验证

[root@apple opt]# id mysql
uid=988(mysql) gid=982(mysql) 组=982(mysql)
安装客户端程序
rpm -ivh /opt/MySQL-client-5.5.52-1.el6.x86_64.rpm
启动MySQL服务
systemctl start mysql.service
设置root用户密码

注意:这里的root用户是MySQL的root用户,不是Linux的root用户

[root@apple opt]# mysqladmin -u root password
New password: 
Confirm new password:
登录MySQL
[root@apple opt]# mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.5.52 MySQL Community Server (GPL)

Copyright (c) 2000, 2016, 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> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| test               |
+--------------------+
4 rows in set (0.00 sec)
客户端登录MySQL服务器
被防火墙拦截的错误提示

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

通过关闭防火墙服务器解决

systemctl stop firewalld.service
systemctl disable firewalld.service
被MySQL自己拒绝连接

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

在MySQL服务器端设置允许任何主机地址访问

执行SQL语句

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'atguigu' WITH GRANT OPTION;

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

重启MySQL服务

[root@apple opt]# mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 5
Server version: 5.5.52 MySQL Community Server (GPL)

Copyright (c) 2000, 2016, 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> 
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> select host,user,password from user;
+-----------+------+-------------------------------------------+
| host      | user | password                                  |
+-----------+------+-------------------------------------------+
| localhost | root | *453FDE92DF58E2DE1A51D27869CF3F1A69984B1B |
| apple     | root |                                           |
| 127.0.0.1 | root |                                           |
| ::1       | root |                                           |
| localhost |      |                                           |
| apple     |      |                                           |
+-----------+------+-------------------------------------------+
6 rows in set (0.01 sec)

mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'atguigu' WITH GRANT OPTION;
Query OK, 0 rows affected (0.00 sec)

mysql> select host,user,password,select_priv,update_priv from user;
+-----------+------+-------------------------------------------+-------------+-------------+
| host      | user | password                                  | select_priv | update_priv |
+-----------+------+-------------------------------------------+-------------+-------------+
| localhost | root | *453FDE92DF58E2DE1A51D27869CF3F1A69984B1B | Y           | Y           |
| apple     | root |                                           | Y           | Y           |
| 127.0.0.1 | root |                                           | Y           | Y           |
| ::1       | root |                                           | Y           | Y           |
| localhost |      |                                           | N           | N           |
| apple     |      |                                           | N           | N           |
| %         | root | *453FDE92DF58E2DE1A51D27869CF3F1A69984B1B | Y           | Y           |
+-----------+------+-------------------------------------------+-------------+-------------+
7 rows in set (0.00 sec)

重启MySQL服务

systemctl restart mysql.service

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

解决字符乱码问题
查看字符相关变量
mysql> show variables like "%char%";
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | latin1                     |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | latin1                     |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)
准备MySQL配置文件
cp /usr/share/mysql/my-small.cnf /etc/my.cnf
[mysqld]
port            = 3306
socket          = /var/lib/mysql/mysql.sock
skip-external-locking
key_buffer_size = 16K
max_allowed_packet = 1M
table_open_cache = 4
sort_buffer_size = 64K
read_buffer_size = 256K
read_rnd_buffer_size = 256K
net_buffer_length = 2K
thread_stack = 128K
character-set-server=utf8

在[mysqld]部分的配置的最后添加character-set-server=utf8
重启MySQL服务

systemctl restart mysql.service

查看字符集相关变量

mysql> show variables like "%char%";
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | utf8                       |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | utf8                       |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)

重新创建数据库、创建数据库表、插入中文字符数据验证。

下一章:打破“闭源”主义的软件基石——Linux(14):Linux系统的维护管理(VMWare软件故障解决)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值