• linux上如何搭建Java环境


    一 linux软件安装常用的方式对比

    Linux下的软件安装,主要有如下三种,“正规”程度依次递减:

    1、使用标准的yum/apt/yast包管理程序安装

    2、使用标准rpm/deb或厂商自己的安装包(比如nVidia的显卡驱动用的bin包)安装

    3、直接解压软件开发者的tar.gz包

    其中:

    1、使用标准的yum/apt/yast包管理程序安装

    这种安装方式相当于苹果/安卓平台上的“应用商店”安装,是最安全可靠的安装模式

    通过这种方式安装的软件,不仅完全契合你的操作系统本身,而且可以保证和系统其他软件包的相容性,一般来说是不可能遇到冲突的。yum并不是一种包,它是安装包的一个软件,在CentOS中是软件包的管理器,yum也对依赖关系进行管理,但是必须要在联网的情况下完成。

    Linux有很多发行版;其中一些面对服务器的版本会非常保守,里面的每一个软件都会经过连续多年的测试,稳定度极高。但相应的,这里面的软件就会老旧一些。

    优点:安装方便,稳定度极高,与系统兼容性好

    缺点:需要联网,有些软件版本老旧或没有

    2、使用标准rpm/deb或厂商自己的安装包(比如nVidia的显卡驱动用的bin包)安装

    rpm包安装几乎在所有Linux平台上都支持,它就像Windows下的exe安装文件一样,各种文件已经编译好,并打包,哪个文件在哪个文件夹里面都已经被指定好,所以很方便。但可能会因为你用了过新/过旧的安装包而和系统其他部分产生相容性问题——比如系统用python2.4你到网上拖了个python3或python1.5、又强行把它装上去还附加到路径最前,那么很可能就会造成其他依赖python的软件出现混乱。

    优点:安装方便

    缺点:兼容性没有yum方式好

    3、直接解压软件开发者的tar.gz包

    这种类似于Windows的“免安装绿色版”软件。

    你可以把它解压到你自己的用户目录,然后在自己的bash.rc之类配置文件中,用export把它加入path——这样你才可以直接在shell中敲它提供的新命令。

    优点:文档齐全

    ​ 因为可以定位到代码,所以debug方便

    ​ 本机兼容性最好(由于是本机编译的,只要编译通过,就没有各种库的依赖的问题)

    缺点:编译麻烦

    ​ 缺乏自动依赖管理,软件升级麻烦

    二 如何安装JDK

    Author:呆萌老师 QQ:2398779723 微信 it_daimeng

    1 yum常用命令

    注:yum( Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器。
    基於RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。
    yum提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。
    yum常用命令

    1.列出所有可更新的软件清单命令:yum check-update
    2.更新所有软件命令:yum update
    3.仅安装指定的软件命令:
        yum install      找到安装包之后,询问你Is this OK[y/d/N],需要你手动进行选择
        yum -y install   如果加上参数-y,就会自动选择y,不需要你再手动选择
    4.仅更新指定的软件命令:yum update 
    5.列出所有可安裝的软件清单命令:yum list
    6.删除软件包命令:yum remove 
    7.查找软件包 命令:yum search 
    8.清除缓存命令:
    yum clean packages: 清除缓存目录下的软件包
    yum clean headers: 清除缓存目录下的 headers
    yum clean oldheaders: 清除缓存目录下旧的 headers
    yum clean, yum clean all (= yum clean packages; yum clean oldheaders) :清除缓存目录下的软件包及旧的headers
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    2. 如何卸载系统自带的JDK

    列举匹配已安装的java的软件包:yum list installed | grep java

    或者yum list installed | grep jdk (比如用rpm安装的jdk,需要搜索jdk才能找到)

    也可以用 rpm -qa | grep java 或 rpm -qa | grep jdk

    在这里插入图片描述

    卸载安装的jdk:yum -y remove java-1.8.0-openjdk*

    在这里插入图片描述

    在这里插入图片描述

    当结果出现了完毕!,就表示卸载成功。

    3 三种安装方式

    推荐第二种

    3.1方法一:利用yum源来安装jdk
    优点:安装方便,不需要配置环境变量
    缺点: 只能安装yum库中自带的openjdk版本,不能安装sun公司的jdk版本
    
    • 1
    • 2

    查看yum库中的java安装包 :yum -y list java*

    在这里插入图片描述

    在这里插入图片描述

    ​ 安装需要的jdk版本的所有java程序:yum -y install java-1.8.0-openjdk*

    在这里插入图片描述

    在这里插入图片描述

    ​ 当结果出现了完毕!即安装完成。

    ​ 查看java版本:java -version

    在这里插入图片描述

    3.2 方式二 RPM方式安装
    优点:安装方便,不需配置环境变量,不需安装相关依赖(依赖自动安装)
    
    • 1

    1、官网下载jdk的rpm文件(http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html)

    2、到该文件所在目录执行命令,我这里是存放在/data文件夹中

    先卸载之前装的所有jdk版本(卸载方式见上文)

    然后通过rpm命令安装

    rpm -ivh jdk-8u251-linux-x64.rpm
    "rpm命令"是RPM软件包的管理工具。rpm原本是Red Hat Linux发行版专门用来管理Linux各项套件的程序,由于它遵循GPL规则且功能强大方便,因而广受欢迎。逐渐受到其他发行版的采用。RPM套件管理方式的出现,让Linux易于安装,升级,间接提升了Linux的适用度。
    
    • 1
    • 2

    在这里插入图片描述

    3、默认安装在/usr/java/jdk1.8.0_251-amd64目录下

    在这里插入图片描述

    4、检查是否成功

    java -version

    在这里插入图片描述

    5.配置环境变量(如果后续要使用tomcat,则需要配置环境变量,只用jdk不需要配置)

    ​ 1)利用vi /etc/profile编辑profile文件

    ​ 2)加入如下内容(jdk文件夹名称根据实际的填写)

    #set java environment
    JAVA_HOME=/usr/java/jdk1.8.0_251-amd64
    JRE_HOME=/usr/java/jdk1.8.0_251-amd64/jre
    CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
    PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
    export JAVA_HOME JRE_HOME CLASS_PATH PATH
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    ​ 3)利用source /etc/profile让配置生效(无需该操作也可完成配置)。

    ​ 4)配置完成输入java -version

    只用jdk,rpm方式不需要配置环境变量的原因

    通过RPM方式安装时,是严格遵照Linux对环境变量的路径的要求,比如:
    
    /usr/bin 可执行的命令安装目录
    
    /usr/lib 程序所使用的库函数保存位置
    
    /usr/share/doc 基本的软件使用手册保存位置
    
    /usr/share/man 帮助文件保存位置
    
    举例来说,我使用RPM安装的jdk1.8,安装完成后,没做任何配置,即可全局使用java命令,本以为安装过程自动在~/.bash_profile或者/etc/profile中做了环境配置,但是查看后并没有,通过$PATH也查看不到jdk的路径。
    
    但是在 /usr/bin中看到了Java,javac命令
    
    也就是说,将jdk安装目录下的bin下的java、javac等命令“复制”到了这里,当然这不是简单的复制,但道理就是那个道理。所以,也就是说,当我们在任意的位置执行java相关命令时,系统会到/usr/bin中来执行。
    
    所以就可以理解为:/usr/bin是针对RPM安装的软件的profile文件,RPM安装过程会自动将一些可执行文件添加到/usr/bin里,从而“配置了环境”,而不需我们配置路径到profile里。
    
    查看/usr/lib后也可以发现其中有jdk安装目录下的lib中的相关包,查看/usr/share/man后也可以发下其中有jdk安装目录下的man中的相关文档。
    
    所以,说到这里,应该可以理解为什么RPM不需配置环境了。
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    3.3 方式三 源码编译

    使用Xftp将下载好的jdk-8u251-linux-x64.tar.gz上传到CentOs上去

    先将之前安装的jdk卸载掉(如果没有安装过可跳过此步骤)

    1、复制安装包到/usr/java目录中(目录可以自己选):

    cp jdk-8u251-linux-x64.tar.gz /usr/java/jdk-8u251-linux-x64.tar.gz

    在这里插入图片描述

    2、切换到/usr/java目录下:cd /usr/java

    3、解压缩包:tar -zxvf jdk-8u251-linux-x64.tar.gz

    在这里插入图片描述

    解压成功(表式JDK已安装成功,可查看jdk的文件夹)

    此时java -version命令还不能使用:

    4、配置环境变量

    使用vi /etc/profile 编辑profile文件 输入: vi /etc/profile

    向文件里面追加以下内容:

    #set java environment
    JAVA_HOME=/usr/java/jdk1.8.0_251
    JRE_HOME=$JAVA_HOME/jre
    PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
    CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
    export JAVA_HOME JRE_HOME PATH CLASSPATH
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    注释:

    JAVA_HOME指明JDK安装路径,就是刚才安装时所选择的路径,此路径下包括lib,bin,jre等文件夹(tomcat,Eclipse的运行都需要依靠此变量)。
    
    CLASSPATH为java加载类(class or lib)路径,只有类在classpath中,java命令才能识别,设:.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib。CLASSPATH变量值中的.表示当前目录
    
    PATH使得系统可以在任何路径下识别java命令,设为:$JAVA_HOME/bin:$JRE_HOME/bin。
    
    特别注意:环境变量值的结尾没有任何符号,不同值之间用:隔开(windows中用;)。
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LzzpPpfi-1668843626115)(pic/10.png)]

    5、使配置文件生效:source /etc/profile

    6、测试配置是否成功: java -version

    7、源码编译的方式安装的jdk如何下载

    卸载:

    用java -version命令判断jdk是否安装(显示版本号等信息,说明已经安装)

    which java(查看JDK的安装路径)

    rm -rf JDK地址(卸载JDK)

    rm -rf /usr/java/jdk/jdk1.8.0_251/

    java -version查看是否卸载完毕

    vi命令编辑文件profile vi /etc/profile

    删除配置的环境变量,至此JDK卸载完毕

    三 如何安装Tomcat

    1下载

    下载tomcat,从tomcat官网下载tomcat的压缩包。

    Tomcat官网下载

    在这里插入图片描述

    2安装

    2.1 将官网下载的apache-tomcat-8.5.57.tar.gz通过xftp上传到服务器中(我是放在根目录下的自建的data文件夹)

    在这里插入图片描述

    2.2 解压(进入到你的文件所在的目录)

    tar -zxvf apache-tomcat-8.5.57.tar.gz		解压
    
    • 1

    2.3 重命名

    mv apache-tomcat-8.5.57  tomcat8.5			重命名,非必须
    
    • 1

    2.4 复制tomcat8.5文件夹到usr/local下

    ​ 一般习惯将程序安装到local文件夹下.类似windows下的program files

    mv  tomcat8.5  /usr/local/tomcat8.5
    
    • 1

    2.5 进入/usr/local/tomcat8.5/bin目录

     cd /usr/local/tomcat8.5/bin
    
    • 1

    3 启动

    ./startup.sh  启动Tomcat
    ./shutdown.sh  关闭Tomcat
    
    • 1
    • 2

    在这里插入图片描述

    4 测试

    curl http://192.168.1.4:8080/

    在这里插入图片描述

    在这里插入图片描述

    四 如何安装Mysql

    使用yum源安装

    1.卸载已有的mysql

    查询已安装的mysql(可能没有)

    yum list installed | grep mysql

    在这里插入图片描述

    如果存在已安装的,则卸载

    yum -y remove mysql-community-*
    
    • 1

    *在这里匹配任意字符,可以一次卸载多个。

    在这里插入图片描述

    卸载完成

    在这里插入图片描述

    2.配置仓库

    由于CentOS 的yum源中没有mysql,需要到mysql的官网下载rpm文件或者配置 repo文件去镜像下载。

    mysql 镜像之一:https://mirrors.tuna.tsinghua.edu.cn/mysql/yum/

    在这里插入图片描述

    如何配置 repo文件:

    [root@localhost ~]# vim /etc/yum.repos.d/mysql.repo
    添加
    [mysql5]
    name=mysql57
    baseurl=https://mirrors.tuna.tsinghua.edu.cn/mysql/yum/mysql-5.7-community-el7-x86_64/
    gpgcheck=0
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    在这里插入图片描述

    在这里插入图片描述

    3.安装指定版本

    [root@localhost ~]# yum install mysql-community-server-5.7.14 -y
    
    
    • 1
    • 2

    在这里插入图片描述

    4.检查是否安装成功

    yum list installed | grep mysql

    在这里插入图片描述

    5.启动

    ​ service mysqld start

    6.跳过登录验证.

    ​ 如何设置跳过登录验证

    ​ 6.1 编辑my.cnf文件: vim /etc/my.cnf

    在这里插入图片描述

    ​ 在[mysqld]后面任意一行添加“skip-grant-tables”用来跳过密码验证的过程

    ​ 6.2保存文档并退出

    ​ 6.3重新启动mysql

    在这里插入图片描述

    6.4 登录

    在这里插入图片描述

    7.免密登录后设置初始密码

    mysql5.7开始 密码字段不再是password而是authentication_string:

    update mysql.user set authentication_string=password(‘新密码’) where user=‘root’ and Host = ‘localhost’;

    在这里插入图片描述

    8.测试用新密码登录

    先退出: quit

    在这里插入图片描述

    ​ 启动mysql

    ​ service mysqld start

    ​ 登录

    在这里插入图片描述

    ​ 出现Mysql> 代表登录成功.

    9.取消“跳过登录验证”

    现在有密码了,需要取消“跳过登录验证”,不然可以无密码登录

    1.输入quit;退出mysql

    在这里插入图片描述

    2.编辑my.cnf文件

    ​ vim /etc/my.cnf

    在这里插入图片描述

    ​ 删除刚加入的“skip-grant-tables”,保存退出

    3.重新启动mysql

    在这里插入图片描述

    10.修改初始设定的密码

    1.第一次安装完mysql不管是用临时密码登入还是通过免密方式修改密码登入之后,如果没有马上修改密码,而有其他的对数据库的操作动作都会报错,要求先修改密码。

    在这里插入图片描述

    2.这个时候需要修改密码

    如果密码格式简单(比如只有小写字母和数字),会报错

    alter user user() identified by ‘daimenglaoshi666’

    在这里插入图片描述

    如果密码格式复杂(有大写字母,小写字母,数字,特殊符号),则成功

    alter user user() identified by ‘Daimeng666=’;

    在这里插入图片描述

    原因分析:

    这个其实与validate_password_policy的值有关。

    validate_password_policy有以下取值:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CQeNR8s4-1668843626128)(pic/20180226165346246)]

    强度为LOW,LOW代表什么?代表密码任意,但长度在8位或以上。

    强度为MEDIUM,这个强度代表什么?代表密码包括:数字、大写字母、小写字母、特殊符号、长度8位以上。

    强度为STRONG,这个时候必须先满足0,1的要求,然后它还追加了一个,对于密码中任意连续4个(或4个让上)字符不得是字典中的单词。

    查看默认的密码策略会发现是 1 。

    select @@validate_password_policy

    在这里插入图片描述

    可以通过命令自己修改策略。

    set global validate_password_policy=0;

    在这里插入图片描述

    再修改密码,则简单密码也可以通过,一般开发时还是建议设置复杂一点的密码。

    在这里插入图片描述

    3 密码修改好以后,可以正常操作数据库了

    在这里插入图片描述

    11.测试sql,和windows里一样

    在这里插入图片描述

    12.其它配置

    12.1开启远程控制

    MySQL默认是没有开启远程控制的,必须添加远程访问的用户,即默认是只能自己访问,别的机器是访问不了的。

    方式一:

    1.1、连接服务器: mysql -u root -p

    1.2、看当前所有数据库:show databases;

    1.3、进入mysql数据库:use mysql;

    1.4、查看mysql数据库中所有的表:show tables;

    1.5、查看user表中的数据:select Host, User from user;

    1.6、修改user表中的Host: update user set Host=‘%’ where User=‘root’;

    ​ 说明: % 代表任意的客户端,可替换成具体IP地址。

    1.7、最后刷新一下:flush privileges;

    ​ 注意:一定要记得在写sql的时候要在语句完成后加上" ; "

    方式二:

    ​ 使用 grant 命令添加远程访问权限

     grant all privileges on *.* to root@"%" identified by "Daimeng666=";
     或
     grant all privileges on *.* to root@"192.168.1.4" identified by "Daimeng666=";
     
     格式说明
    
     grant all privileges on 数据库名.表名|*.* to 创建的用户名(root)@"%|ip" identified       by  "密码";
    
     @ 后面是访问mysql的客户端IP地址(或是 主机名) % 代表任意的客户端,如果填写 localhost 为本地访问(那此用户就不能远程访问该mysql数据库了)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    如果要移除允许远程访问的权限:

    ​ 1.进入mysql数据库:use mysql;查询user表会发现表中新增了一条记录

    在这里插入图片描述

    ​ 2.删除刚添加的权限记录

    ​ delete from user where host=‘%’ and user=‘root’;

    ​ 3. 刷新一下:flush privileges;让权限生效

    在这里插入图片描述

    12.2 关闭MySQL

    service mysqld stop

    12.3 重启MySQL

    service mysqld restart

    12.4 查看MySQL运行状态

    service mysqld status

    12.5 设置开机启动

    service mysqld enable

    12.6 关闭开机启动

    service mysqld disable

    12.7 配置默认编码为utf8:

    vi /etc/my.cnf #添加 [mysqld] character_set_server=utf8 init_connect=‘SET NAMES utf8’

    其他默认配置文件路径:

    配置文件:/etc/my.cnf

    日志文件:/var/log//var/log/mysqld.log

    服务启动脚本:/usr/lib/systemd/system/mysqld.service socket

    文件:/var/run/mysqld/mysqld.pid

    12.8 查看版本

    select version();

  • 相关阅读:
    花木兰荣耀典藏皮肤特效一览 花木兰九霄神辉值得入手吗
    Sass系统学习
    数据结构之常见排序算法
    【blood group + transferase】
    我坚定的认为,这个源码肯定是有 BUG 的!
    C#,《数值算法:科学计算的艺术,Numerical Recipes: The Art of Scientific Computing》
    探索 Electron Egg:构建跨平台桌面应用的理想选择
    【opencv-c++】windows10系统安装OpenCV4.6.0
    从0到1 手把手搭建spring cloud alibaba 微服务大型应用框架(六)(优化篇)开发篇-如何解决微服务开发环境请求实例转发到别人机器问题
    使用 Liquibase 管理数据库版本 - SpringBoot 2.7 .2 实战基础
  • 原文地址:https://blog.csdn.net/daimenglaoshi/article/details/127937705