小工具      在线工具  汉语词典  dos游戏  css  js  c++  java

ubuntu虚拟机安装包括jdk,mysq,tomcat环境

Linux,ubuntu,tomcat,linux 额外说明

收录于:17天前

Ubuntu20.04虚拟器安装

安装过程需要包括配置静态IP、启动SSH远程连接和文件传输、配置常用的jdk、python等编程语言的开发环境、安装和配置MySQL数据库、将Ubuntu配置为Web服务器。使用的ubunt版本是20.04。

配置静态ip

虚拟机默认安装了dhcp协议,这意味着同一局域网内的主机会自动为用户(虚拟机)分配IP地址。需要改为static以避免变动。

系统默认配置(有些可能不同,没有以太网内容):

network:
    ethernets:
        ens33:
            dhcp4: yes
            addresses: []
 
    version: 2

配置成如下后面内容:(使用管理员账户root,普通用户无法更改配置内容。)

每个人的IP都不一样。只需将其配置为 dhcp 分配的即可。可以通过以下方式查看相关配置信息:

在这里插入图片描述

通过ip addr查看dhcp分配的ip,结合上面的信息进行配置如下:

在这里插入图片描述

注意要找到该系统文件,本来就有的,不是新文件,不同版本文件名可能不一样。配置完成后输入sudo netplan apply

ubuntu配置静态ip

应用网络配置后查看网络的连通性:ping [自己主机号]

在这里插入图片描述

ctrl + c 停止,如上图配置成功。

SSH远程连接

在本机上测试同一局域网下虚拟机的连通性:

在这里插入图片描述

为什么我可以 ping 通 Windows 上同一虚拟机的网络连接?

Ping的原理是ICMP协议。 ICMP的全称是Intent Control Message Protocol,中文意思是互联网控制消息协议。它是互联网协议族的核心协议之一。它用于在TCP/IP网络中发送控制消息,并对通信环境中可能出现的各种问题提供反馈。通过这些信息,管理者可以诊断发生的问题,然后采取适当的措施来解决这些问题。

Vmware工具为我们提供了三种网络工作模式,分别是:Bridged(桥接模式)、NAT(网络地址转换模式)、Host-only(仅主机模式)。

在这里插入图片描述

VMware虚拟机三种网络模式详解感谢作者https://www.cnblogs.com/cnjavahome/p/11266931.html

ping后就在winodw上用软件连接虚拟机了。如Xshell远程连接软件。如下:

虚拟机上who命令查看当前用户名:

在这里插入图片描述

这里不描述Xshell连接部分,主要描述一下遇到的问题:

信息填写正确后,无法连接:

在这里插入图片描述

也不知道什么原因,看到这位博主才解决,感谢@柳风123的文章Xshell在虚拟机中连接Ubuntu

Xshell等远程连接软件都是通过ssh协议连接的,SSH 为 [Secure Shell]的缩写,SSH 为建立在应用层基础上的安全协议。SSH 是较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。

在虚拟机上启用ssh远程连接:

sudo service sshd start
sudo /etc/init.d/ssh start

如果出现Failed to start sshd.service: Unit sshd.service not found.类似这种命令就需要安装该服务:

sudo apt install openssh-server

安装成功后默认就会启动服务,输入ps -e | grep ssh命令查询ssh服务,出现sshd就完成了。

在这里插入图片描述

接下来就可以通过Xshell进行连接了。弹出如下提示,表示连接成功(ssh服务默认端口号为22):

在这里插入图片描述

在这里插入图片描述

Xshell连接ubuntu

FTP协议传输文件

虚拟机上没有可视化界面,文件管理不方便。可以使用FTP软件传输文件到虚拟机,比如Xftp(连接方式和Xshell类似,都是通过):

在这里插入图片描述

FTP 和 SFTP

配置jdk环境

这里以jdk环境为例。其他语言的配置过程是一样的。

上传或下载jdk压缩包:

在这里插入图片描述

#解药到当前目录
tar -zxvf test.tar.gz

#解压到指定目录
tar -zxvf test.tar.gz  -C /home/user/    #从系统目录写全

在这里插入图片描述

Ubuntu中各种压缩文件的解压命令完整列表

cd 切换到解压后的jdk的bin目录,输入pwd查看当前目录,复制

配置environment文件 vi /etc/environment先切换root用户

#path后追加 :$JAVA_HOME/bin
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:$JAVA_HOME/bin"

#set java environment
export JAVA_HOME=/home/server/Java/jdk1.8.0_11
export JRE_HOME=$JAVA_HOME/jre

输入source /etc/environment命令使配置文件生效。

配置profile文件 vi /etc/profile

#set Java environment
#在文件后面追加
export JAVA_HOME=/usr/local/java/jdk1.8.0_271   #jsk的bin目录完整路径,刚复制的部分
export JRE_HOME=$JAVA_HOME/jre  
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH  
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH 

输入source /etc/profile命令使配置文件生效。

查看是否配置成功java -versionjavac -version

在这里插入图片描述

Ubuntu配置jdk环境变量

python语言配置步骤基本相同(只是解析器路径)。

除了自己配置环境变量外,还有系统默认配置:

# 安装python3,通过命令行安装系统会自动配置环境变量
sudo apt-get install python3

#安装python2
sudo apt-get install python

# 安装的python3在/usr/bin下,为python3建立软连接
sudo ln -s /usr/bin/python3 /usr/local/bin/python3  # 在系统根目录下不是/home目录

# 安装pip3
sudo apt-get install python3-pip
 
# 更新pip
sudo pip3 install --upgrade pip

环境变量重启后自动生效。只需输入python或python3即可进入python编辑环境。

安装mysql数据库

下载数据库

# 下载数据库
sudo apt install mysql-server

#安装出错就跟新系统再次安装
sudo apt update

#sudo 是赋予root权限,切换超级用户root后就不需要了

刚刚了解了数据运维,下面是配置过程的一些参考资料:

  1. ubuntu安装mysql感谢作者

  2. Ubuntu20.04安装MySQL8.0并配置远程连接感谢作者@哲这这

  3. Ubuntu20.04安装Mysqlg感谢作者@风居住的街道~

  4. Ubuntu 配置访问感谢作者@陆杜振林

输入sudo systemctl status mysql查看mysql是否启动,出现下面active(running)即为正在运行:

在这里插入图片描述

mysql启动后对其进行初始化

初始化最重要的就是配置用户名和密码输入sudo mysql_secure_installation指令:

输入第一个配置:

在这里插入图片描述

您想执行强密码验证吗?不

第二个配置:

在这里插入图片描述

为数据库设置密码。您必须输入两次,并且密码不会显示。尝试使用字母和数字,不要使用其他字符。如上所述,为root设置密码,默认用户为root。

第三种配置:

在这里插入图片描述

是否删除匿名用户:N

第四种配置:

在这里插入图片描述

禁用远程连接?不行,从命令行操作数据库很不方便。您需要使用可视化工具和远程连接。

第五种配置:

在这里插入图片描述

删除测试数据库?你可以删除也可以不删除。

第六种配置:

在这里插入图片描述

配置是否生效? y

配置完成:

在这里插入图片描述

总结一下,主要配置项有以下几个:

#1
VALIDATE PASSWORD PLUGIN can be used to test passwords...
Press y|Y for Yes, any other key for No: N (选择N ,不会进行密码的强校验)

#2
Please set the password for root here...
New password: (输入密码)
Re-enter new password: (重复输入)

#3
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...
Remove anonymous users? (Press y|Y for Yes, any other key for No) : N (选择N,不删除匿名用户)

#4
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) : N (选择N,允许root远程连接)

#5
By default, MySQL comes with a database named 'test' that
anyone can access...
Remove test database and access to it? (Press y|Y for Yes, any other key for No) : N (选择N,不删除test数据库)

#6
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 (选择Y,修改权限立即生效)

连接数据库

检查数据库状态:

systemctl status mysql.service和之前一样,启动后就可以访问数据了。

和window上一样mysql -u root -p命令访问,注意要是root用户下,普通用户没权限,或添加sudo前缀:

在这里插入图片描述

配置远程访问

使用Navicat软件访问数据库,只要知道IP即可:

在这里插入图片描述

确认后,报错:

在这里插入图片描述

失败原因:默认情况下,Mysql不允许访问本机以外的主机(SSH除外)。修改mysqld.cnf文件可以解决问题,但是修改该文件可能会带来安全问题,所以建议配置ufw防火墙。

在这里插入图片描述

  1. 连接虚拟机mysql报错10061
  2. Bind-address参数配置要求,以及如何启用mysql允许远程客户端访问

解决方案:

  1. 更改mysql默认配置以允许远程访问

    # 编辑配置文件
    sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf
    
    #修改默认配置允许远程访问
    bind-address		= 127.0.0.1 [虚拟机ip地址]   #中间用空格隔开
    
  2. 重启mysql应用配置

    #重启mysql数据库
    sudo /etc/init.d/mysql restart
    
  3. 出现新错误

在这里插入图片描述

1130 - 不允许主机 XXX 连接到此 MySQL 服务器。

  1. 登录要连接的数据库的主机(虚拟机)

    修改数据库内部信息,将用户localhost改为%(通配符,允许任何用户访问)

    # 进入数据
    sudo mysql -u root -p
    
    #进入user(用户表)修改用户信息,允许所有用户使用数据库
    use mysql;
     
    select host from user where user='root';
    
    

在这里插入图片描述

  1. 修改用户信息以允许所需的IP访问

    # 将localhost改为%允许所有ip访问
    update user set host = '%' where user ='root';
    
    #或者insert将允许的ip插入
    insert into user values ('192.168.xxx.xxx');
    
    
    

在这里插入图片描述

  1. 重启mysql并重新连接

    sudo service mysql restart

不允许主机 XXX 连接到此 MySQL 服务器

主机‘192.168.1.3’不允许连接到此MySQL服务器

  1. 本以为连接成功,结果却是。 。 。 。出现以下错误,请继续更正。

在这里插入图片描述

网上查了很多资料,发现是因为版本问题。我在Linux上使用的mysql的加密规则在版本8左右发生了变化。在mysql8之前的版本中,加密规则是mysql_native_password,但是在mysql8之后,加密规则是caching_sha2_password,所以可以升级navcat的版本或更改加密规则mysql的

#输入该指令查看加密规则
select host,user,plugin,authentication_string from mysql.user;

#是caching_sha2_password而不是mysql_native_password

在这里插入图片描述

加密规则变了,但是navcat的还是一样的,所以只需升级到以下或者修改加密规则即可。

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'newpassword'; #更新一下用户的密码 root用户密码为newpassword

让我们升级版本,与时俱进吧!

  1. 本以为更新后就可以连接了,结果又出错了。我真的被说服了!

在这里插入图片描述

这次的原因是密码错误,但我输入的是正确的。这是因为数据库中没有密码:

select host, user, authentication_string, plugin from user;查询发现,密码那行为空的,

在这里插入图片描述

只需添加新的 sql 语句或插入密码即可。输入新密码后连接成功:

在这里插入图片描述

参考教程:

  1. Ubuntu20.04安装Mysql

  2. ubuntu20.04上安装mysql8.0

  3. ubuntu上安装mysql8.0并远程连接

  4. 在Ubuntu 20.04上安装MySQL的教程

虚拟机模拟远程服务器

模拟远程服务器最重要的是Web服务器。浏览器发送http请求,需要服务器解析。

为了避免配置环境变量,直接在虚拟机上使用shell命令下载。

下载并安装 Tomcat

#更新系统
sudo apt update
#查询tomcat版本,选择安装版本

在这里插入图片描述

#安装tomcat9-admin
sudo apt install tomcat9

使用apt-get install自动安装的就不需要配置环境变量了,配置环境变量的目的是告诉系统,有这样一些资源,典型的是你使用tab键能够找到可以运行的程序,如果这个程序的位置没有设置在path环境变量里面就无法自动提示。像上传,解压,自己配置了路径虽然也能允许但系统并不知道,所以需要配置环境变量。

安装完成会出现这样的ERROR,输入sudo apt update后再次安装

在这里插入图片描述

安装完成后会自动开启服务,输入ss -ltn查看8080端口是否占用,tomcat默认使用8080端口:

在这里插入图片描述

如上图所示,tomcat已经启动。使用以下说明打开和关闭 tomcat:

# 开启tomct
sudo systemctl enable tomcat9
# 关闭tomcat
sudo systemctl disable tomcat9

在主机上的浏览器输入[ip]:8080端口,出现下图所示内容就可以了:

在这里插入图片描述

大致意思是:

有效!

如果您通过 Web 浏览器看到此页面,则您已成功设置 Tomcat。恭喜!

这是默认的 Tomcat 主页。 它可以在本地文件系统上找到:/var/lib/tomcat9/webapps/ROOT/index.html

Tomcat 的老手可能会很高兴得知这个 Tomcat 系统实例安装在 :CATALINA_HOME : /usr/share/tomcat9以及CATALINA_BASE:/var/lib/tomcat9,遵循的规则在/usr/share/doc/tomcat9-common/RUNNING.txt.gz压缩包中。

如果您还没有这样做,您可以考虑安装以下软件包:

tomcat9-文档:该软件包安装了一个允许在本地浏览 Tomcat 9 文档的 Web 应用程序。 安装后,您可以通过单击此处访问它。

tomcat9-示例:这个包安装了一个允许访问 Tomcat 9 Servlet 和 JSP 示例的 Web 应用程序。 安装后,您可以通过单击此处访问它。

tomcat9-管理:这个包安装了两个 Web 应用程序,可以帮助管理这个 Tomcat 实例。 安装后,您可以访问 manager webapp 和 host-manager webapp。

注意:出于安全原因,管理器 Web 应用程序的使用仅限于具有“manager-gui”角色的用户。主机管理器 Web 应用程序仅限于具有“admin-gui”角色的用户。用户在 /etc/tomcat9/tomcat-users.xml 中定义。

参考文档:

  1. 如何在 Ubuntu 20.04 上安装 Tomcat 9感谢作者@雪梦科技
  2. Ubuntu20.04安装tomcat感谢作者@白色不理解黑色的安静

相关目录及功能说明:(默认安装,配置环境不同)

  • /etc/tomcat9- 全局配置
  • /usr/share/tomcat9/- 程序主目录
  • /usr/share/tomcat9/conf/Catalina/localhost/- 本机部署的 Catalina 配置
  • /var/lib/tomcat9/- 工作主目录,
  • /var/lib/tomcat9/webapps- (web文件实际存放于此)

如果安装了tomcat9-admin,则需要在全局配置中创建用户才能访问admin管理页面:

  • /etc/tomcat9下是 tomcat 的全局配置,这里需要修改 tomcat-users.xml添加新管理员

启动和关闭tomcat

除了通过上述命令关闭tomcat(默认配置环境变量)外,还可以通过.sh脚本关闭:

  • /usr/share/tomcat9是 tomcat 的主程序目录。
  • /usr/share/tomcat6/bin/startup.sh是开启命令。(window上也有,不过用不上,用.bat开启)
  • /usr/share/tomcat6/bin/shutdown.sh是关闭命令。

该目录与window上类似:

在这里插入图片描述

切换tomcat脚本存放目录:

在这里插入图片描述

localhost/``` - 用于本地部署的 Catalina 配置

  • /var/lib/tomcat9/- 工作主目录,
  • /var/lib/tomcat9/webapps- (web文件实际存放于此)

如果安装了tomcat9-admin,则需要在全局配置中创建用户才能访问admin管理页面:

  • /etc/tomcat9下是 tomcat 的全局配置,这里需要修改 tomcat-users.xml添加新管理员

启动和关闭tomcat

除了通过上述命令关闭tomcat(默认配置环境变量)外,还可以通过.sh脚本关闭:

  • /usr/share/tomcat9是 tomcat 的主程序目录。
  • /usr/share/tomcat6/bin/startup.sh是开启命令。(window上也有,不过用不上,用.bat开启)
  • /usr/share/tomcat6/bin/shutdown.sh是关闭命令。

该目录与window上类似:

在这里插入图片描述

切换tomcat脚本存放目录:

在这里插入图片描述

注意是运行shutdown.sh脚本而不是shutdown

. . .

相关推荐

额外说明

java.lang.IllegalStateException:无法加载ApplicationContext

问题描述 mvn clean install的时候报的如下异常: 紧接着又往下翻了一下日志还有一个这个错误 按正常来说通过@@可以取pom当中的properties标签的值呀。但是可以发现编译过后的application当中的值并没有被替换。 解决过程

额外说明

Java进阶——Graal编译器简介

Graal编译器介绍 Graal编译器属于后端编译器,由Java实现,支持提前编译和即时编译 JDK9推出Java虚拟机编译器接口(Java-Level JVM CompilerInterface,JVMCI),将Graal从HotSpot代码中独立出来

额外说明

Linux系统切换用户后只显示$

背景 创建了一个用户 useradd -g mygroup -m myuser 创建完之后,切换到 myuser,发现,窗口只显示 $ 了 解决方案 切换到 root vim /etc/passwd 找到 myuser 这一行, 把  bin/sh 改成

额外说明

Java Spring定时器时间格式写法是网上最精妙的方法

Java Spring定时器时间格式写法全网最精妙方法 进入网址 http://cron.ciding.cc/ 0 5 0 * * ? #配置为例子 验证自己定时是不是写的正确

额外说明

人工智能的三个阶段——三个阶段总结分析

QQ 1274510382 Wechat JNZ_aming 商业联盟 QQ群538250800 技术搞事 QQ群599020441 解决方案 QQ群152889761 加入我们 QQ群649347320 共享学习 QQ群674240731 纪年科技am

额外说明

【Unity3D读取数据】(三)Xml文件操作(创建、读取、写入、修改)

推荐阅读 CSDN主页 GitHub开源地址 Unity3D插件分享 简书地址 我的个人博客 QQ群:1040082875 大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有用记得一键三连哦。 一、前言 在程序开发中,经常会遇到

额外说明

【玩转Linux操作】详细讲解shell的注释,变量,字符串,数组等操作

-专栏【玩转Linux操作】 -喜欢的诗句:更喜岷山千里雪 三军过后尽开颜。 -音乐分享【Counting Stars 】 欢迎并且感谢大家指出小吉的问题- 文章目录 -概述 ⭐注意 ⭐示例 -️‍-然后运行 -当前路径下执行 -绝对路径下执行 -家目录

额外说明

Java实现:折半查找算法(递归、分治法)

Java实现:折半查找算法(递归)(分治法) 文章目录 Java实现:折半查找算法(递归)(分治法) 1. 问题 2. 解决方案 2.1. 分治法 2.2. 递归算法 2.3. 问题分析 3. 实现代码 4. 执行结果 1. 问题 递归的折半查找算法。

额外说明

Shell编程输入输出功能

1. 接受从键盘上输入的字符 echo -n "please input your name:" read name echo "your name is $name" echo -p "please input your name:" name ec

额外说明

ZooKeeper【基础 01】简介+设计目标+核心概念+ZAB协议+典型应用场景

熟悉 SpringCloud 的小伙伴应该对 Zookeeper 不陌生,它可以用了做注册中心,但是Zookeeper不仅仅是微服务的组件,还在大数据框架内扮演重要角色。 1.简介 Zookeeper 是一个开源的分布式协调服务,目前由 Apache 进

ads via 小工具