本文主要是介绍ubuntu虚拟机安装包括jdk,mysq,tomcat环境,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Ubuntu20.04虚拟器安装
安装过程需要包括配置静态ip,启动ssh远程连接,和文件传输,配置常用的jdk,python等编程语言的开发环境安装配置mysql数据库,以及将ubuntu配置为web服务器的过程。使用的ubunt版本为20.04。
配置静态ip
虚拟机默认安装时dhcp协议,就是同一局域网下有主机自动分配ip给用户(虚拟机)。需要将其改为静态避免出现变动。
系统默认配置(有的可能不一样,没有ethernets内容):
network:ethernets:ens33:dhcp4: yesaddresses: []version: 2
配置成如下后面内容:(用管理员账号root,一般用户无法更改配置内容)
每个人的ip时不一样的将其配置为dhcp分配的一个就可以了,配置的相关信息可以通过如下方式查看:
通过ip addr
查看dhcp分配的ip,结合上面的信息进行配置如下:
注意要找到该系统文件,本来就有的,不是新文件,不同版本文件名可能不一样。配置完成后输入sudo netplan apply
ubuntu配置静态ip
应用网络配置后查看网络的连通性:ping [自己主机号]
ctrl + c
停止,如上图配置成功。
SSH远程连接
在本机上测试同一局域网下虚拟机的连通性:
为什么在window上可以ping同虚拟机的网络联通性呢?
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 -version
和javac -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安装Mysqlg感谢作者@風の住む街~
-
Ubuntu配置访问权限感谢作者@lduzhenlin
输入sudo systemctl status mysql
查看mysql是否启动,出现下面active(running)即为正在运行:
mysql启动后对其进行初始化
初始化最重要的就是配置用户名和密码输入sudo mysql_secure_installation
指令:
进入第一个配置:
是否进行密码的强校验?no
第二个配置:
为数据库设置密码。要输入两次,密码不会显示出来,尽量用字母和数字,不要出现其他字符。上面已经说了为root设置密码,默认用户是root。
第三个配置:
是否删除匿名用户:N
第四个配置:
是否禁止远程连接? no,命令行操作数据库不方便,需要借助可视化工具,需要远程连接。
第五个配置:
是否删除测试数据库?删不删都可以。
第六个配置:
配置是否生效? 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能够允许远程的客户端访问
解决方案:
-
更改mysql默认配置允许远程访问
# 编辑配置文件 sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf#修改默认配置允许远程访问 bind-address = 127.0.0.1 [虚拟机ip地址] #中间用空格隔开
-
重启mysql应用配置
#重启mysql数据库 sudo /etc/init.d/mysql restart
-
又出现了新的错
1130 - Host XXX is not allowed to connect to this MySQL server。
-
登录要连接的数据库的主机(虚拟机)
修改数据库内部信息,将将用户localhost改为%(通配符,允许任何用户访问)
# 进入数据 sudo mysql -u root -p#进入user(用户表)修改用户信息,允许所有用户使用数据库 use mysql;select host from user where user='root';
-
修改用户信息允许需要的ip访问
# 将localhost改为%允许所有ip访问 update user set host = '%' where user ='root';#或者insert将允许的ip插入 insert into user values ('192.168.xxx.xxx');
-
重启mysql,重新连接
sudo service mysql restart
Host XXX is not allowed to connect to this MySQL server
Host ‘192.168.1.3’ is not allowed to connect to thisMySQL server
- 本以为可以连接成功了,结果。。。。出现了以下错误 ,继续改错吧
上网查了很多资料,发现是由于版本的问题,我使用的是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的还是原来的,所以升级以下或者修改加密规则即可。
- 修改加密规则
- client does not support authentication protocol requested by server
- Navicat连接mysql出现1251Client does not support authentication protocol requested by server的解决方案
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'newpassword'; #更新一下用户的密码 root用户密码为newpassword
为了更上时代去升级版本了!
- 本以为跟新后就可以连接了,结果又报错,真的服了!
这次原因是密码错误,但是我是输的正确的呀,是由于数据库中没有密码:
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-docs:该软件包安装了一个允许在本地浏览 Tomcat 9 文档的 Web 应用程序。 安装后,您可以通过单击此处访问它。
tomcat9-examples:这个包安装了一个允许访问 Tomcat 9 Servlet 和 JSP 示例的 Web 应用程序。 安装后,您可以通过单击此处访问它。
tomcat9-admin:这个包安装了两个 Web 应用程序,可以帮助管理这个 Tomcat 实例。 安装后,您可以访问 manager webapp 和 host-manager webapp。
注意:出于安全原因,使用 manager webapp 仅限于角色为“manager-gui”的用户。 host-manager webapp 仅限于角色为“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
。
这篇关于ubuntu虚拟机安装包括jdk,mysq,tomcat环境的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!