十五、linux之搭建JavaEE环境

1 概述

如果需要在 Linux 下进行 JavaEE 的开发,我们需要安装如下软件
在这里插入图片描述

2 安装 JDK

安装步骤

    1. mkdir /opt/jdk
mkdir /opt/jdk

在这里插入图片描述

    1. 通过 xftp6 上传到 /opt/jdk 下
      在这里插入图片描述
    1. cd /opt/jdk
      在这里插入图片描述
    1. 解压 tar -zxvf jdk-8u261-linux-x64.tar.gz
tar -zxvf jdk-8u261-linux-x64.tar.gz

在这里插入图片描述
在这里插入图片描述

    1. 创建目录 /usr/local/java
mkdir /usr/local/java 
    1. 移动目录到/usr/local/java 统一管理
mv /opt/jdk/jdk1.8.0_261 /usr/local/java 
    1. 配置环境变量的配置文件(在Linux的任何下都能找到java和javac)
#查看PATH目前的环境变量有哪些
echo $PATH

在这里插入图片描述
编辑etc下的profile 文件

vim /etc/profile 

#找到profile文件的最后输入

 export JAVA_HOME=/usr/local/java/jdk1.8.0_261  #引入到PATH环境变量export PATH=$JAVA_HOME/bin:$PATH  

在这里插入图片描述

 #让新的环境变量生效source /etc/profile 

在这里插入图片描述

测试是否安装成功

  1. 编写一个简单的 Hello.java 输出"hello,world!
vim Hello.java
public class Hello{public static void main(String[] args){System.out.println("Hello,World!");}
}

3 tomcat 的安装

步骤

1、创建目录

#在/opt下创建目录
mkdir /opt/tomcat

在这里插入图片描述
2、使用xftp上传文件到tomcat目录下
在这里插入图片描述
3、解压缩到/opt/tomcat

tar -zxvf apache-tomcat-8.5.59.tar.gz

在这里插入图片描述
4、进入apache目录下

cd apache-tomcat-8.5.59/bin

在这里插入图片描述

5、启动 tomcat ./startup.sh

./startup.sh 

在这里插入图片描述
6、在物理机上ping一下linux的ip
在这里插入图片描述

7、 开放端口 8080

firewall-cmd --permanent --add-port=8080/tcp
#或者
firewall-cmd --zone=public --add-port=8080/tcp --permanent
#重启防火墙
firewall-cmd --reload#查看已开启的端口
firewall-cmd --list-ports 
或者
firewall-cmd  --query-port=8080/tcp
#查看防火墙状态
firewall-cmd --state
#开启防火墙
systemctl start firewalld
#开启端口;zone:作用域
firewall-cmd --zone=public --add-port=8080/tcp --permanent
#重启防火墙
firewall-cmd --reload

在 windows、Linux 下 访问 http://linuxip:8080
在这里插入图片描述
例子:在tomcat的访问文件夹加一个自己的html文件
在这里插入图片描述

demo.html

<!-- tomcat目录下的webapps/ROOT -->
<h3>demo</h3>

在这里插入图片描述

4 idea2020 的安装

步骤

  1. 下载地址: https://www.jetbrains.com/idea/download/#section=windows
    在这里插入图片描述

  2. 解压缩到/opt/idea

mkdir /opt/idea
tar -zxvf ideaIU-2020.2.3.tar.gz

在这里插入图片描述

  1. 启动 idea bin 目录下 ./idea.sh,配置 jdk(需要到虚拟机操作)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
设置字体大小
file----settings
在这里插入图片描述

  1. 编写 Hello world
public class hello {public static void main(String[] args) {System.out.println("hello");}
}

在这里插入图片描述

5 mysql5.7 的安装(!!)

PS:centos7.6自带的类mysql数据库是mariadb,会跟mysql冲突,要先删除

  1. 运行rpm -qa|grep mari,查询mariadb相关安装包
rpm -qa|grep mari

在这里插入图片描述

  1. 运行rpm -e --nodeps mariadb-libs,卸载
rpm -e --nodeps mariadb-libs
rpm -e --nodeps marisa

在这里插入图片描述

  1. 新建文件夹/opt/mysql,并cd进去
mkdir /opt/mysql
cd /opt/mysql

在这里插入图片描述

  1. 运行wget http://dev.mysql.com/get/mysql-5.7.26-1.el7.x86_64.rpm-bundle.tar,下载mysql安装包(因为包比较大,直接使用xftp上传)
    链接: https://pan.baidu.com/s/1ZVHnBvFTb3mHbSa5YUqfAQ?pwd=kd33 提取码: kd33
    在这里插入图片描述

5.运行tar -xvf mysql-5.7.26-1.el7.x86_64.rpm-bundle.tar

#因为这个文件后面没有.gz,所以解压的时候是-xvf,而不是-zxvf
tar -xvf mysql-5.7.26-1.el7.x86_64.rpm-bundle.tar

在这里插入图片描述
在这里插入图片描述
6. 开始真正安装mysql,依次运行以下几条(需要按顺序执行)

rpm -ivh mysql-community-common-5.7.26-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.26-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.26-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.26-1.el7.x86_64.rpm

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
7. 运行systemctl start mysqld.service,启动mysql

systemctl start mysqld.service

在这里插入图片描述

  1. Mysql自动给root用户设置随机密码,运行grep “password” /var/log/mysqld.log可看到当前密码
grep "password" /var/log/mysqld.log

在这里插入图片描述
9. 开始设置root用户密码,运行mysql -u root -p,用root用户登录,提示输入密码可用上述的(不要自己敲,要复制粘贴),可以成功登陆进入mysql命令行

mysql -u root  -p

在这里插入图片描述
10. 设置root密码,对于个人开发环境,如果要设比较简单的密码(生产环境服务器要设复杂密码),可以运行

#提示密码设置策略,(validate_password_policy默认值1,)
set global validate_password_policy=0; 
#设置登录密码()
set password for 'root'@'localhost' =password('12345678');
#使密码设置生效
flush privileges;

在这里插入图片描述
11. 查看数据库

show databases;

在这里插入图片描述

  1. 退出数据库
quit;

在这里插入图片描述

6、关于mysql数据库密码

当修改密码的时候会报错:

mysql> set password for ‘root’@‘localhost’ =password(‘123456’);
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

出现问题的主要原因是 MySQL 有默认的密码策略:

  • 至少包含 1 位大小写
  • 至少包含 1 位数字
  • 包含 1 个特殊符号
  • 必须 8 位及以上

如果不想把密码设置的那么复杂,就需要修改默认的密码策略。

查看当前的密码策略
SHOW VARIABLES LIKE 'validate_password%';
根据需求修改以下变量
  • validate_password.policy:密码策略,默认值为MEDIUM。可以设置为LOW、MEDIUM、STRONG或者自定义。例如,可以将其设置为LOW以降低密码复杂性要求。

    SET GLOBAL validate_password.policy = LOW;#或者
    SET GLOBAL validate_password.policy = 0;
    

    不同策略的要求:
    0/LOW:只验证长度;
    1/MEDIUM:验证长度、数字、大小写、特殊字符;默认值。
    2/STRONG:验证长度、数字、大小写、特殊字符、字典文件;

  • validate_password.length:密码最小长度,默认值为8。可以根据需要修改最小密码长度

    SET GLOBAL validate_password.length = 6;
    
  • validate_password.number_count:密码中的数字要求,默认值为1。可以增加或减少数字的要求。

    SET GLOBAL validate_password.number_count = 1;
    
  • validate_password.special_char_count:密码中特殊字符的要求,默认值为1。可以增加或减少特殊字符的要求。

    SET GLOBAL validate_password.special_char_count = 1;
    
  • validate_password.mixed_case_count:密码中大写字母和小写字母的要求,默认值为1。可以增加或减少大写字母和小写字母的要求。

    SET GLOBAL validate_password.mixed_case_count = 1;
    
修改配置文件以使修改的密码策略永久生效。

打开MySQL的配置文件(通常是 mysqld.cnf 或 my.cnf),添加下面的内容到文件中:

validate_password.policy=LOW
validate_password.length=6
validate_password.number_count=1
validate_password.special_char_count=1
validate_password.mixed_case_count=1

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

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

相关文章

基于PHP的音乐网站的设计与实现

摘 要 本系统采用PHP编程语言和MySQL数据库技术搭载了Apache服务器&#xff0c;完成了基于PHP的音乐网站设计&#xff0c;通过此次毕 业论文的撰写我明白了对于论文的选题要精确&#xff0c;要明确&#xff0c;要有明确的见解&#xff0c;要有足够的论证和创意&#xff0c;必须…

mysql 触发器进入历史

一、触发器 MySQL 触发器&#xff08;Triggers&#xff09;是一种数据库对象&#xff0c;它与表关联&#xff0c;能在特定的事件&#xff08;如插入、更新或删除&#xff09;发生时自动执行一些指定的操作。使用触发器可以帮助我们自动维护数据库的完整性、一致性&#xff0c;…

Re-squiggle算法

Re-squiggle算法 从纳米孔读取产生的电流信号水平数据被称为“squiggle”。基于这种squiggle信息进行碱基调用通常会与参考序列存在一些错误。Re-squiggle算法定义了一种新的从squiggle到参考序列的分配,因此称为re-squiggle。 Re-squiggle算法是Tombo框架的基础。该算法以包…

Springboot项目搭建(8)-用户登出与个人中心修改

1.提要信息 1.1 catch和then方法 then和catch是JavaScript中Promise对象的两个方法&#xff0c;用于处理异步操作的成功&#xff08;成功回调&#xff09;和失败&#xff08;失败回调&#xff09;情况。这两个方法通常与async/await语法一起使用&#xff0c;但也可以单独使用…

【2024】使用Docker搭建redis sentinel哨兵模式集群全流程(包含部署、测试、错误点指正以及直接部署)

目录&#x1f4bb; 前言**Docker Compose介绍**最终实现效果 一、搭建集群1、创建文件结构2、创建redis节点3、验证节点4、创建sentinel哨兵5、验证Sentinel功能 二、spring连接1、添加依赖2、添加配置3、启动测试 三、直接部署流程1、拉取配置2、修改端口创建 前言 本篇文章主…

Python毕业设计选题:基于django+vue的智慧社区可视化平台的设计与实现+spider

开发语言&#xff1a;Python框架&#xff1a;djangoPython版本&#xff1a;python3.7.7数据库&#xff1a;mysql 5.7数据库工具&#xff1a;Navicat11开发软件&#xff1a;PyCharm 系统展示 管理员登录 管理员功能界面 养老机构管理 业主管理 社区安防管理 社区设施管理 车位…

webpack 项目访问静态资源

使用 webpack dev serve 启动 react 项目后&#xff0c;发现无法使用 http://localhost:8080/1.png 访问到项目的 /static 目录下的 1.png 文件。我的 webpack-dev.js 配置如下&#xff1a; const webpack require(webpack) const webpackMerge require(webpack-merge) cons…

shell(2) 变量

定义变量 中间不需要加空格&#xff0c;末尾也不需要分号。 name1jth #不加引号定义 name2jth #单引号定义 name3"jth" #双引号定义 这三种都表示字符串变量。 使用变量 使用$符号&#xff0c;或者${}。加花括号主要是帮助解释器识别变量边界。 echo $name #输出jth…

React的Fiber小记 ⏰

写在最前&#xff1a;绝对是错漏百出的一篇博文&#xff0c;很多内容还没有写demo去验证&#xff0c;特别是浏览器的帧渲染那一块&#xff0c;权当小记。至于为什么想写Fiber&#xff0c;问就是Shopee面试的时候被问惨了&#xff0c;之前实习上班摸鱼的时候看过稀土掘金上一篇感…

JavaScript 前端开发:从入门到精通的奇幻之旅

目录 一、引言 二、JavaScript 基础 &#xff08;一&#xff09;变量与数据类型 &#xff08;二&#xff09;运算符 &#xff08;三&#xff09;控制结构 三、函数 &#xff08;一&#xff09;函数定义与调用 &#xff08;二&#xff09;函数作用域 &#xff08;三&am…

安装Fcitx5输入框架和输入法自动部署脚本(来自Mark24)-Ubuntu通用

在Ubuntu22.04上安装rime中文输入法的基本教程 上述文章接近废弃。 使用新逻辑配置基本的Fcitx5的输入法。 安装 第一步&#xff0c;下载相关组件 sudo nala install vim sudo nala install ruby sudo nala install fcitx5-rime第二步&#xff0c;设置语言为Fcitx5 而非 默认…

【FAQ】使用Node.js 镜像 构建本地项目

在nodejs官方并没有提供使用node.js构建本地项目的方法&#xff0c;但是通过阅读官方文档&#xff0c;可以发现&#xff0c;官方在包管理器界面提供了如下语句 所以node.js容器是可以执行语句的 下面通过docker 的 -w 、-v 参数设置容器工作目录和目录映射&#xff08;实现本…

C/C++语言基础--C++智能指针(unique_ptr、shared_ptr、week_ptr)

本专栏目的 更新C/C的基础语法&#xff0c;包括C的一些新特性 前言 在C、C语言中&#xff0c;最经典的特性就是指针&#xff0c;他和内存相关&#xff0c;但是我们常常申请内存后忘记释放而导致内存泄漏&#xff0c;C提供了智能指针去解决这个内存泄漏问题&#xff1b;C语言…

Nature Methods | 人工智能在生物与医学研究中的应用

Nature Methods | 人工智能在生物与医学研究中的应用 生物研究中的深度学习 随着人工智能&#xff08;AI&#xff09;技术的迅速发展&#xff0c;尤其是深度学习和大规模预训练模型的出现&#xff0c;AI在生物学研究中的应用正在经历一场革命。从基因组学、单细胞组学到癌症生…

队列-链式描述(C++)

定义 使用链表描述队列时&#xff0c;通常包含以下几个基本要素&#xff1a; 队头指针&#xff08;Front Pointer&#xff09;&#xff1a;指向队列中第一个&#xff08;即最早进入队列的&#xff09;元素的节点。队尾指针&#xff08;Rear Pointer&#xff09;&#xff1a;指…

Flutter 之 InheritedWidget

InheritedWidget 是 Flutter 框架中的一个重要类&#xff0c;用于在 Widget 树中共享数据。它是 Flutter 中数据传递和状态管理的基础之一。通过 InheritedWidget&#xff0c;你可以让子 Widget 在不需要显式传递数据的情况下&#xff0c;访问祖先 Widget 中的数据。这种机制对…

Python 深度学习框架介绍

Python 是深度学习领域的主流编程语言&#xff0c;拥有许多强大的深度学习框架&#xff0c;广泛用于学术研究、工业应用和生产环境中。以下是一些最流行的 Python 深度学习框架&#xff0c;它们各自具有独特的功能和特点&#xff1a; 1. TensorFlow 开发公司&#xff1a;Google…

MySQL技巧之跨服务器数据查询:进阶篇-从A服务器的MySQ数据库复制到B服务器的SQL Server数据库的表中

MySQL技巧之跨服务器数据查询&#xff1a;进阶篇-从A服务器的MySQ数据库复制到B服务器的SQL Server数据库的表中 基础篇已经描述&#xff1a;借用微软的SQL Server ODBC 即可实现MySQL跨服务器间的数据查询。 而且还介绍了如何获得一个在MS SQL Server 可以连接指定实例的MyS…

Flutter 指纹识别

在这篇博客中&#xff0c;我们将介绍如何使用 Flutter 的 local_auth 插件在 Android 和 iOS 设备上实现指纹识别功能。通过这一步一步的实现&#xff0c;我们将学习如何检查设备是否支持生物识别、如何触发指纹验证&#xff0c;并处理可能出现的错误。 效果图&#xff08;因为…

CentOS 9 配置静态IP

文章目录 1_问题原因2_nmcli 配置静态IP3_使用配置文件固定IP4_重启后存在的问题5_nmcli 补充 1_问题原因 CentOS 7 于 2014年6月发布&#xff0c;基于 RHEL 7&#xff0c;并在 2024年6月30日 结束维护。 CentOS 9 作为目前的最新版本&#xff0c;今天闲来闲来无事下载下来后…