扎心了! 面试官: 你有自己的云服务器吗?
作者:互联网
作者:犬小哈
来源:小哈学Java
作为一名后端Java程序员,小哈是极力推荐大家拥有一台属于自己的云服务器的,什么?有些童鞋肯定说:我用虚拟机玩得很转,花那冤枉钱干啥玩意!
为什么要用云服务器
使用云服务器好处大致如下:
更好的了解项目是如何在线上环境是如何运行的?(可以说,国内大部分中小企业的服务都跑在云上,有钱的公司,自建机房的,当小哈没说~);
部署相关测试环境非常方便,比如 Redis, Mysql, MongDB, Elasticsearch 这些,Linux 环境上部署肯定比 Windows 方便;
如果部署在本机上,会比较吃硬件资源,电脑配置差点的童鞋,可能感觉卡顿严重,影响开发效率!
逼格高,比如你去面试的时候,提及自己有一个部署在公网服务器的博客,会对你印象分更高,相对没有玩过云服务器的,你更容易拿到 Offer ~
购买过程中的注意事项
因为小哈几年前就买过了,为了方便演示,我这里购买了一台按量服务的服务器。配置大致过程差不多,主要注意事项如下:
系统镜像选择
这里,公共镜像选择第一个 CentOS
, 因为其更加稳定,而且大部分企业线上环境都是使用的 CentOS, 版本选择最新 7.x 64 位。
区域选择
区域上,我们尽量选择里客户近的机房区域,比如说你想在服务器上部署一个博客,当然是希望别人访问博客的时候,网络延迟越低越好~
远程登录方式
小哈个人更喜欢使用用户名、密码来登录,当然你也可以使用私钥来登录,看个人喜好。
访问创建的实例
相关设置完成后,在阿里云控制台,点击实例,就可以看见我们刚刚购买的实例服务器了:
列表中有显示新申请的这台实例的公网地址,复制完成后,接下来,开始访问这台远程服务器。
远程访问的客户端,你可以选择 Xshell
, 或者其他客户端均可以,小哈使用的 Mac
系统,这里使用的 Terminus
, 步骤基本如下:
1. 填写公网访问地址、端口号;
2. 输入前面自己设置的用户名、密码,点击登录;
可以看到,小哈已经这边已经登录成功了。
部署相关环境
新服务器登录上去基本是非常干净的,比如 Java 环境、Mysql 等,什么都没有,所以要一一安装。
安装 JDK 1.8
访问 JDK 1.8 的官网下载地址https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html,下载安装包:
没办法下载的小伙伴,可以公众号后台,回复关键词:jdk, 即可获取小哈下载好的 JDK.
下载成功后,上传到服务器的指定目录下 /home
(目录可以自己选择),解压:
tar -zxvf jdk-8u211-linux-x64.tar.gz
配置环境变量,编辑 /etc/profile
:
vim /etc/profile
移动到文本最后一行,添加如下配置:
export JAVA_HOME=/home/jdk1.8.0_211export JRE_HOME=/home/jdk1.8.0_211/jreexport CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATHexport PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
保存退出!
重新加载系统配置文件:
source /etc/profile
再次执行命令 java-version
, 查看 JDK 环境是否配置成功。
输出了 JDK 版本信息,安装成功。
安装 MySQL
我们选择安装 MySQL 5.7 版本,执行如下命令:
wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm rpm -ivh mysql-community-release-el7-5.noarch.rpm yum update yum install mysql-server
权限设置:
chown mysql:mysql -R /var/lib/mysql
启动 MySQL:
systemctl start mysqld
查看 MySQL 运行状态:
systemctl status mysqld
关于 MySQL 登录密码:
正常来说在启动日志里会生成一个随机密码,以供登录,小哈这里安装的时候并没有生成,具体原因还不太清楚。这边可以先取消默认密码:
# 编辑mysql配置文件 vim /etc/my.cnf; # 在 [mysqld] 小节下添加一行: skip-grant-tables=1 # 重启mysql systemctl restart mysqld;
登录:
mysql -u root
执行命令:
# 修改 root 账户密码为 123456 update mysql.user set authentication_string=password('123456') where user='root'; # 刷新 flush privileges; # 退出 mysql quit;
退出 MySQL 后,再将 /etc/my.cnf
文件中的 skip-grant-tables=1
删除掉,重启 MySQL 即可;
设置 Mysql 3306 端口安全组
由于阿里云服务器安全限制,此时想访问远程数据库,还需将 3306 端口加入到安全组中:
依次点击 更多 -> 网络和安全组 -> 安全组配置,将 3306 端口配置到安全组中,同时授权固定 IP 来访问,也就是白名单:
测试本机是否能够连接远程的 MySQL
小哈这里使用 Mac 的客户端 Sequel Pro 来测试,小伙伴们使用 Navicat 也是 OK 的:
连接远程 MySQL 的解决办法
有的小伙伴们按照上述步骤,可能最后发现自己安全组端口也加白名单了,还是连不上的情况。那是因为设置 MySQL 的时候, root
账号不允许从远程登录导致的。
解决办法:
# 登录 mysql mysql -u root -p # 授权 root 账户能从任何主机远程连接 GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION; # 刷新 flush privileges; # 退出 mysql quit;
设置成功后,再次连接,就没问题了。
部署一个 Spring Boot 项目
小哈的个人独立博客就是使用 Spring Boot 来开发的,部署在阿里云服务器上,又买了一个域名做了映射。关于域名这块,我们先不谈,先尝试部署一个简单的 Spring Boot 项目,且通过公网 IP 来访问它。
关于如何初始化一个入门级的 Spring Boot 项目,小伙伴们可以参考小哈之前写的这篇文章:
定义一个简单的访问接口:
/**
* @author 犬小哈(公众号: 小哈学Java)
* @date 2019/1/29
* @time 13:58
* @discription
**/
@RestController
@Slf4j
public class TestController {
@GetMapping("/hello")
public String hello() {
return "Hello, Spring Boot with Aliyun !";
}
}
项目打包:
mvn clean package
进入 target
目录,将 jar
包上传到服务器指定目录:
并以后台启动方式运行项目:
nohup java -jar spring-boot-hello-0.0.1-SNAPSHOT.jar &
启动成功后,我们尝试通过公网来访问这个服务,注意,因为项目启动在 8080
端口,还需将 8080
端口也加入安全组才行。
在浏览器中,访问这个服务:
至此,一个入门级的 SpringBoot
项目在云服务器上就部署完成了!当然,能做的远不至于此,比如部署一个博客项目,小伙伴们可以去尝试一下~
最后
本教程中,小哈带着大家从购买云服务器的事项说起,并一步一步带着大家演示了,怎样安装 JDK 环境、MySQL 数据库,以及部署一个入门级的 Spring Boot 项目,有兴趣的小伙伴可以入手买一台玩一玩~
标签:面试官,登录,小哈,mysql,扎心,访问,MySQL,服务器 来源: https://blog.51cto.com/15023237/2648693