Linux 搭建 Java 部署环境:安装 JDK 和 MySQL 的教程

目录

一、apt

二、JDK

2.1 更新软件包

2.2 安装openjdk

三、MySQL

3.1 使用apt安装MySQL

3.2 查看MySQL的状态

3.3 MySQL 安装安全设置

3.4 设置密码


一、apt

apt(Advanced Packaging Tool), Linux软件包管理,用于在Ubuntu、Debian和相关Linux发版上安装、更新、删除和管理deb软件包。大多数apt命令必须以具有sudo权限的用户身份运行。

apt常用命令:

列出所有软件包 :

apt list 

输出所有包的列表,内容比较多,可以使用grep命令过滤输出。

 apt list | grep "java"

更新软件包数据库。

sudo apt-get update 

apt实际上在可软件包的数据库上如果数据库没有更新, 系统将不知道是否有更新的软件包可用。这就是为什么在安装任何Linux系统之后,第件事应该是更新apt数据库此命令时将看到从各种服务器检索到的软件包信息如果切换到root用户,命令前就不需要加 sudo了

切换为root用户的命令:

sudo su

安装软件包:

sudo apt install package_name

移出软件包:

sudo apt remove package_name

remove命令将卸载给定的软件包,但可能会留下些配置件。如果要删除包含所有配置文件的软件包,请使用purge不是remove。

apt remove 和 apt purge 的区别:

apt remove 删除包的进制件,它留下了残留的配置

apt purge 删除与包相关的所有内容,包括配置

如果弄乱了程序的配置希望从系统中完全清除它的痕迹再重新开始可以使apt purge 通常使 apt remove 足够。 

二、JDK

2.1 更新软件包

sudo apt-get update

执行结果:

ubuntu@VM-24-3-ubuntu:~$ sudo apt-get update #更新软件包
Hit:1 http://mirrors.tencentyun.com/ubuntu jammy InRelease
Hit:2 http://mirrors.tencentyun.com/ubuntu jammy-updates InRelease
Hit:3 http://mirrors.tencentyun.com/ubuntu jammy-security InRelease
Reading package lists... Done

2.2 安装openjdk

#查找jdk包
apt list |grep "jdk"#安装jdk
sudo apt install openjdk-17-jdk

执行结果:

root@bite:~# apt list |grep "jdk" #查找jdk
openjdk-8-doc/focal-updates,focal-updates,focal-security,focal-security 8u382-
ga-1~20.04.1 all
openjdk-8-jdk-headless/focal-updates,focal-security,now 8u382-ga-1~20.04.1 
amd64 [installed,automatic]
openjdk-8-jdk-headless/focal-updates,focal-security 8u382-ga-1~20.04.1 i386
openjdk-8-jdk/focal-updates,focal-security,now 8u382-ga-1~20.04.1 amd64
[installed]
openjdk-8-jdk/focal-updates,focal-security 8u382-ga-1~20.04.1 i386
openjdk-8-jre-headless/focal-updates,focal-security,now 8u382-ga-1~20.04.1 
amd64 [installed,automatic]
openjdk-8-jre-headless/focal-updates,focal-security 8u382-ga-1~20.04.1 i386
openjdk-8-jre-zero/focal-updates,focal-security 8u382-ga-1~20.04.1 amd64
openjdk-8-jre-zero/focal-updates,focal-security 8u382-ga-1~20.04.1 i386
openjdk-8-jre/focal-updates,focal-security,now 8u382-ga-1~20.04.1 amd64 
[installed,automatic]
openjdk-8-jre/focal-updates,focal-security 8u382-ga-1~20.04.1 i386
openjdk-8-source/focal-updates,focal-updates,focal-security,focal-security 
8u382-ga-1~20.04.1 all
ubuntu@VM-24-3-ubuntu:~$ sudo apt install openjdk-17-jdk #输⼊安装命令
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done...
0 upgraded, 126 newly installed, 0 to remove and 154 not upgraded.
Need to get 102 MB of archives.
After this operation, 400 MB of additional disk space will be used.
Do you want to continue? [Y/n] Y #输⼊Y继续下一步...done.
done.
Processing triggers for libglib2.0-0:amd64 (2.72.4-0ubuntu2.2) ...
Processing triggers for libc-bin (2.35-0ubuntu3.4) ...
Setting up at-spi2-core (2.44.0-3) ...
Processing triggers for libgdk-pixbuf-2.0-0:amd64 (2.42.8+dfsg-1ubuntu0.2) ...
完成之后,可使用  java -version 验证是否安装成功:
ubuntu@VM-24-3-ubuntu:~$ java -version #查看jdk版本
openjdk version "17.0.10" 2024-01-16
OpenJDK Runtime Environment (build 17.0.10+7-Ubuntu-120.04.1)
OpenJDK 64-Bit Server VM (build 17.0.10+7-Ubuntu-120.04.1, mixed mode, sharing)
卸载OpenJDK:
检查安装的是哪个OpenJDK
# dpkg --list | grep -i jdk
移除 openjdk包:
# apt-get purge openjdk*
卸载 OpenJDK 相关包:
# apt-get purge icedtea-* openjdk-*
检查所有 OpenJDK包是否都已卸载完毕:
# dpkg --list | grep -i jdk

三、MySQL

3.1 使用apt安装MySQL

#查找安装包
apt list |grep "mysql-server"
#安装mysql
sudo apt install mysql-server
执行结果:
root@bite:~# apt list |grep "mysql-server" #查找mysql的安装包WARNING: apt does not have a stable CLI interface. Use with caution in scripts.default-mysql-server-core/focal,focal 1.0.5ubuntu2 all
default-mysql-server/focal,focal 1.0.5ubuntu2 all
mysql-server-8.0/focal-updates,focal-security 8.0.35-0ubuntu0.20.04.1 amd64
mysql-server-8.0/focal-updates,focal-security 8.0.35-0ubuntu0.20.04.1 i386
mysql-server-core-8.0/focal-updates,focal-security 8.0.35-0ubuntu0.20.04.1 
amd64
mysql-server-core-8.0/focal-updates,focal-security 8.0.35-0ubuntu0.20.04.1 i386
mysql-server/focal-updates,focal-updates,focal-security,focal-security 8.0.35-
0ubuntu0.20.04.1 all
ubuntu@VM-24-3-ubuntu:~$ sudo apt install mysql-server #输⼊安装命令
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
...After this operation, 243 MB of additional disk space will be used.
Do you want to continue? [Y/n] Y #输⼊Y确认emitting matrix : 100% |###########################################| 
done!update-alternatives: using /var/lib/mecab/dic/ipadic-utf8 to provide 
/var/lib/mecab/dic/debian (mecab-dictionary) in auto mode
Setting up libhtml-parser-perl:amd64 (3.76-1build2) ...
Setting up libhttp-message-perl (6.36-1) ...
Setting up mysql-server (8.0.35-0ubuntu0.22.04.1) ...
Setting up libcgi-pm-perl (4.54-1) ...
Setting up libhtml-template-perl (2.97-1.1) ...
Setting up libcgi-fast-perl (1:2.15-1) ...
Processing triggers for man-db (2.10.2-1) ...
Processing triggers for libc-bin (2.35-0ubuntu3.4) ...

3.2 查看MySQL的状态

sudo systemctl status mysql

执行结果:

ubuntu@VM-24-3-ubuntu:~$ sudo systemctl status mysql
● mysql.service - MySQL Community ServerLoaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor 
preset: enabled)Active: active (running) since Tue 2023-10-31 15:05:59 CST; 13min agoProcess: 70739 ExecStartPre=/usr/share/mysql/mysql-systemd-start pre 
(code=exited, status=0/SUCCESS)Main PID: 70747 (mysqld)Status: "Server is operational"Tasks: 37 (limit: 2220)Memory: 369.2MCPU: 2.360sCGroup: /system.slice/mysql.service└─70747 /usr/sbin/mysqldOct 31 15:05:58 VM-24-3-ubuntu systemd[1]: Starting MySQL Community Server...
Oct 31 15:05:59 VM-24-3-ubuntu systemd[1]: Started MySQL Community Server.

3.3 MySQL 安装安全设置

默认的 MySQL 设置是不安全的,MySQL 安装提供了一个安全脚本,用于解决不太安全的默认选项。
运行以下命令:
sudo mysql_secure_installation

接下来按照提示输入:

root@hcss-ecs-0bb1:~# sudo mysql_secure_installation #安装安全设置Securing the MySQL server deployment.Connecting to MySQL using a blank password.VALIDATE PASSWORD COMPONENT can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD component?Press y|Y for Yes, any other key for No: Y #是否设置验证密码组件
There are three levels of password validation policy:LOW Length >= 8
MEDIUM Length >= 8, numeric, mixed case, and special characters
STRONG Length >= 8, numeric, mixed case, special characters and dictionary filePlease enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 2 #设置密码强度Skipping password set for root as authentication with auth_socket is used by 
default.
If you would like to use password authentication instead, this can be done 
with the "ALTER_USER" command.
See https://dev.mysql.com/doc/refman/8.0/en/alter-user.html#alter-userpassword-management for more information.By default, a MySQL installation has an anonymous user,
allowing anyone to log into MySQL without having to have
a user account created for them. This is intended only for
testing, and to make the installation go a bit smoother.
You should remove them before moving into a production
environment.Remove anonymous users? (Press y|Y for Yes, any other key for No) : Y #默认情
况下,MySQL安装有⼀个匿名用户, 允许任何⼈登录MySQL. 是否删除匿名用户?
Success.Normally, root should only be allowed to connect from
'localhost'. This ensures that someone cannot guess at
the root password from the network.Disallow root login remotely? (Press y|Y for Yes, any other key for No) : Y #仅
应允许root从'localhost'连接
Success.By default, MySQL comes with a database named 'test' that
anyone can access. This is also intended only for testing,
and should be removed before moving into a production
environment.Remove test database and access to it? (Press y|Y for Yes, any other key for 
No) : Y #默认情况下, MySQL带有⼀个test数据库, 是否删除?- Dropping test database...Success.- Removing privileges on test database...
Success.Reloading the privilege tables will ensure that all changes
made so far will take effect immediately.Reload privilege tables now? (Press y|Y for Yes, any other key for No) : Y #是
否现在加载配置, 使刚才的修改生效? 
Success.All done! 

3.4 设置密码

连接mysql数据库:

sudo mysql
使用alter user 命令修改密码:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY
'BITE@yyds.666';
卸载MySQL
#停止mysql
sudo systemctl stop mysql
#卸载mysql
sudo apt-get remove --purge mysql-server mysql-client mysql-common
#删除 MySQL 配置文件和数据
sudo rm -rf /etc/mysql /var/lib/mysql
#清理残留文件和目录
sudo apt-get autoremove
sudo apt-get autoclean
#验证卸载结果
mysql --version

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/878594.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

OcrLiteNcnn:Windows环境打包及Java调用

目录结构 前言cmake安装源码下载说明Windows源码编译执行“cmake -DCMAKE_BUILD_TYPE=Release ..”执行“cmake --build . --config Release -- -m:6”编译完成识别图片命令行调用Java调用前言 Java实现OCR识别图片中的文字,小编先前整理过一篇在Linux环境中基于“ChineseOcr…

OpenCV入门12.2:SURF与SIFT比较及SURF示例

SIFT (Scale-Invariant Feature Transform): 提出时间: 1999年,由David Lowe提出。关键特点: 能够检测和描述图像中的关键点,这些关键点对旋转、缩放和部分亮度变化具有不变性。计算复杂度: 相对较高,因为SIFT使用了高斯差分核来检测关键点&…

小程序面试题二

一、微信小程序的开发原理是什么? 微信小程序的开发原理主要基于Web规范,采用HTML、CSS和JavaScript等前端技术,并结合微信官方提供的特定框架和API进行开发。以下是小程序开发原理的详细解析: 1. 开发框架与语言 WXML&#xff…

全局安装react

1、首先安装react脚手架 npm install -g create-react-app2、创建react项目 create-react-app my-app3、 PS D:\桌面\papers\subject> create-react-app my-react-appCreating a new React app in D:\桌面\papers\subject\my-react-app.Installing packages. This might …

解释 JVM 的内存模型(堆、栈、方法区等),并简述如何通过调整 JVM 参数来优化应用程序的性能?

JVM(Java Virtual Machine)的内存模型是 Java 程序运行的基础,理解它的各个组成部分对于优化应用程序的性能至关重要。 JVM 的内存模型主要包括以下几个部分: 堆(Heap)栈(Stack)方…

数据结构(1)数据结构基础(单向链表)

一、什么是数据结构 数据结构是一组用来保存一种或多种特定关系的数据的集合。其主要目的是组织和存储数据,以便于高效的访问和修改。在程序设计中,将大量而复杂的问题以特定的数据类型和特定的存储结构存储在内存中,并在此基础上实现某个特定…

Docker安装Neo4j图数据库和APOC插件

文章目录 一、前言二、安装Neo4j三、测试Neo4j四、安装APOC插件五、测试APOC插件 一、前言 官方文档:https://neo4j.com/docs/operations-manual/current/docker/introduction/ 二、安装Neo4j 我这里以 5.23.0 版的 Neo4j 为例 拉取镜像 docker pull neo4j:5.23.0…

Java-用户线程与守护线程

在Java中,线程分为用户线程和守护线程。用户线程是程序的主要线程,而守护线程则是为用户线程提供支持的后台线程。以下是对这两种线程的详细解释以及示例代码。 用户线程与守护线程的区别 用户线程: 用户线程是应用程序中执行的主要线程&…

HarmonyOS NEXT 应用运行异常记录与解决(持续整理版)

问题一 App Launch Failed to get the device apiVersion. 解决方案 进入到设备管理,点击对应开启的模拟器设备,先将模拟器关闭,然后点击查出掉用户数据,再重启。 重启之后,一般能解决。如果遇到还是显示拿不到apiVer…

《第三十四章 高级主题 - 动画效果》

在 Android 应用开发中,动画效果能够显著提升用户体验,使应用更加生动和吸引人。本章将深入探讨 Android 中的动画效果,包括属性动画、帧动画以及 ViewPager 动画。 一、属性动画 (一)属性动画简介 属性动画是 Android…

bash反弹shell分析

目录 介绍步骤 介绍 与目标主机建立连接的原理是利用漏洞执行ShellCode。 GetShell的实质是:执行ShellCode,将目标主机的Shell重定向到攻击机。拿到Shell利于后续的渗透。 所谓的反弹Shell是指GetShell的过程由目标主机主动发起(反向连接&a…

Git如何安装和配置

一、Git 的安装 1、Git 的官网 Git (git-scm.com) 2、下载 Git for Windows 在官网下载好 Git 的安装文件后,接下来就可以进行安装了。 3、安装 Git 以管理员身份运行你下载的安装文件: 然后就可以进入安装向导了。 4、验证是否安装成功 当安装向…

测试分类简介

1.按照测试⽬标分类 1)界面测试: 界⾯测试(简称UI测试),指按照界⾯的需求(⼀般是UI设计稿)和界⾯的设计规则,对我们软件界⾯所展⽰的全部内容进⾏测试和检查。 2)功能测试&#xff…

内存管理(三)--Linux CMA内存使用

文章目录 一、预留一段内存常用方法1.1 设备树定义reserve memory 二、内存节点常见属性2.1 no-map和reusable使用上的区别 三、预留CMA的reserved memory方法3.1 共享cma(采用设备树)3.2 共享cma(采用bootargs)3.3 私有cma 四、使…

【数据结构】--初始集合框架

1. 什么是集合框架 集合框架:Java中已经实现好的集合类(一些已经由Java实现好的数据结构)。Java的数据结构和C语言的数据结构是没有什么区别的,里面的区别就只是实现的语言不一样。不可能出现Java的单链表和C语言实现的单链表是两个不同的东…

idea配置svn发现安装的svn中的bin目录下没有svn.exe文件

问题描述 使用idea配置svn时,发现安装的svn没有svn.exe文件 解决方法 1、双击svn安装包,找到【modify】 2、默认安装时,没有安装command line client tools,里面是有svn.exe 3、选择will be installed on local hard drive 4、…

idea中使用git提交代码报错husky > pre-commit

1、原因: 本地项目中的.git下的一个文件导致的提交失败,这个文件是pre-commit文件。由于预提交钩子pre-commit导致的提交失败,通过删除.git/hooks/pre-commit文件可以解决 2、解决步骤: 1、找到项目中的.git文件夹,…

鸿蒙-右边固定长度,左边超长Text自适应

Component Entry struct test {build() {Row() {Column() {Text(长字符串长字符串长字符串长字符串长字符串长字符串长字符串长字符串长字符串长字符串长字符串长字符串长字符串长字符串长字符串长字符串长字符串).maxLines(1).textOverflow({ overflow: TextOverflow.Ellipsis…

公园智能厕所引导大屏,清楚显示厕位有无人状态

在科技飞速发展的今天,公园的设施也在不断与时俱进。其中,公园智能厕所引导大屏的出现,为游客带来了全新的如厕体验。 走进公园的智能厕所区域,首先映入眼帘的便是那醒目的引导大屏。屏幕上清晰地显示着各个厕位的有无人状态&…

sqlite3的db.parallelize方法:并行执行SQL语句,提升数据库操作效率

在Node.js环境中,sqlite3作为一个广受欢迎的轻量级数据库库,为开发者提供了一个与SQLite数据库进行交互的简洁API。在进行数据库操作时,为了提高效率,sqlite3提供了db.parallelize方法,允许并行执行多个SQL语句&#x…