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

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

Linux,ubuntu,tomcat,linux 额外说明

收录于:152天前

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后就不需要了

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

    ubuntu安装mysql Ubuntu20.04安装MySQL8.0并配置远程连接 Ubuntu20.04安装Mysql 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防火墙。

在这里插入图片描述

    连接虚拟机mysql报错10061 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 语句或插入密码即可。输入新密码后连接成功:

在这里插入图片描述

参考教程:

    Ubuntu20.04安装Mysql ubuntu20.04上安装mysql8.0 ubuntu上安装mysql8.0并远程连接 在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 中定义。

参考文档:

    如何在 Ubuntu 20.04 上安装 Tomcat 9 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

. . .

相关推荐

额外说明

K8S云原生渗透实践2

实战目标介绍 Kubernetes是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单并且高效(powerful),Kubernetes提供了应用部署,规划,更新,维护的一种机制。 如今,很多云原生产

额外说明

java 给字符串左补0或右补0

背景 网上找到的左右补0,基本上是对数值进行操作的,所以这里进行了优化,对自符串做处理。 网上对数值字符转化 1100这里没问题,但是 0011 转就是错误的。 方法 /** * 给字符串的左补0或右补0 * @param str

额外说明

百度地图的html显示是通过地址名称查询的,并用红色标记。

  经纬度的没有试出来。 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitiona

额外说明

el-card 设置滚动条的位置

如何实现动态自定义设置el-card的滚轮位置   首先,我们要将el-card的滚动显示溢出内容的功能开启,具体做法: <template> <el-card class="card"> <div> <!-- your con

额外说明

Java基础——转换流

 (1)字符输入转换流:InputStreamReader 可把原始的字节流按照指定编码转换成字符输出流。 可解决字符流读取不同编码乱码的问题。  (2)字符输出转换流:OutputStreamWriter 可把字节输出流按照指定编码转换成字符输出流。

额外说明

Java基础 第二节 第六课

ArrayList 类 引入 -- 对象数组 什么是 ArrayList 类 ArrayList 使用步骤 类 构造方法 成员方法 常用方法和遍历 如何存储基本数据类型 ArrayList 练习 数值添加到集合 对象添加到集合 打印集合方法 获取集合方法

额外说明

Java中Iterator用法

迭代器(Iterator) 迭代器是一种设计模式,它是一个对象,它可以遍历并选择序列中的对象,而开发人员不需要了解该序列的底层结构。迭代器通常被称为“轻量级”对象,因为创建它的代价小。 Java中的Iterator功能比较简单,并且只能单向移动: (1)

额外说明

Eclipse打不开,出现an error has occured see the log file(日志中出现!MESSAGE FrameworkEvent ERROR !STACK 0)问题

昨晚打开Eclipse软件截图写了一篇博客,就关掉了软件,后来电脑也没有关机就去睡觉了,早晨点击Eclipse发现,人工呼吸也不能救活了。 出现这个弹框: 查看.log日志文件也不是很懂: !SESSION 2019-03-30 10:23:12.879

额外说明

Invalid argument: Invalid JPEG data & Python脚本删除指定文件夹下的有问题的jpg格式图片

问题 用yolo-nas训练一个数据集时,老是报图片有问题的错中断训练,因此写个脚本清洗掉有错误的jpg图片。 代码&使用方法 用自己的文件路径替换掉代码中的train_dir文件路径即可。注意,运行该代码后有问题的Jpg图片将会直接被删掉,建议运行前先

额外说明

Windows系统缺少PhotoMetadataHandler.dll文件导致程序异常问题

其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题,如果是新手第一时间会认为是软件或游戏出错了,其实并不是这样,其主要原因就是你电脑系统的该dll文件丢失了或没有安装一些系统软件平台所需要的动态链接库,这时你可以下载这个PhotoMetadataH

ads via 小工具