其他分享
首页 > 其他分享> > 扎心了! 面试官: 你有自己的云服务器吗?

扎心了! 面试官: 你有自己的云服务器吗?

作者:互联网

图片

作者:犬小哈

来源:小哈学Java

作为一名后端Java程序员,小哈是极力推荐大家拥有一台属于自己的云服务器的,什么?有些童鞋肯定说:我用虚拟机玩得很转,花那冤枉钱干啥玩意!

图片

为什么要用云服务器

使用云服务器好处大致如下:

  1. 更好的了解项目是如何在线上环境是如何运行的?(可以说,国内大部分中小企业的服务都跑在云上,有钱的公司,自建机房的,当小哈没说~);

  2. 部署相关测试环境非常方便,比如 Redis, Mysql, MongDB, Elasticsearch 这些,Linux 环境上部署肯定比 Windows 方便;

  3. 如果部署在本机上,会比较吃硬件资源,电脑配置差点的童鞋,可能感觉卡顿严重,影响开发效率!

  4. 逼格高,比如你去面试的时候,提及自己有一个部署在公网服务器的博客,会对你印象分更高,相对没有玩过云服务器的,你更容易拿到 Offer ~


购买过程中的注意事项

因为小哈几年前就买过了,为了方便演示,我这里购买了一台按量服务的服务器。配置大致过程差不多,主要注意事项如下:

系统镜像选择

图片

这里,公共镜像选择第一个 CentOS, 因为其更加稳定,而且大部分企业线上环境都是使用的 CentOS, 版本选择最新 7.x 64 位。

区域选择

图片

区域上,我们尽量选择里客户近的机房区域,比如说你想在服务器上部署一个博客,当然是希望别人访问博客的时候,网络延迟越低越好~

远程登录方式

小哈个人更喜欢使用用户名、密码来登录,当然你也可以使用私钥来登录,看个人喜好。

访问创建的实例

相关设置完成后,在阿里云控制台,点击实例,就可以看见我们刚刚购买的实例服务器了:

图片

列表中有显示新申请的这台实例的公网地址,复制完成后,接下来,开始访问这台远程服务器。

远程访问的客户端,你可以选择 Xshell, 或者其他客户端均可以,小哈使用的 Mac 系统,这里使用的 Terminus, 步骤基本如下:

图片

可以看到,小哈已经这边已经登录成功了。

部署相关环境

新服务器登录上去基本是非常干净的,比如 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 项目,小伙伴们可以参考小哈之前写的这篇文章:

这可能是史上最易懂的 Spring Boot 入门教程

定义一个简单的访问接口:

  1. /**

  2. * @author 犬小哈(公众号: 小哈学Java)

  3. * @date 2019/1/29

  4. * @time 13:58

  5. * @discription

  6. **/

  7. @RestController

  8. @Slf4j

  9. public class TestController {


  10.    @GetMapping("/hello")

  11.    public String hello() {

  12.        return "Hello, Spring Boot with Aliyun !";

  13.    }

  14. }

项目打包:

mvn clean package

进入 target 目录,将 jar 包上传到服务器指定目录:

image.png

并以后台启动方式运行项目:

nohup java -jar spring-boot-hello-0.0.1-SNAPSHOT.jar &

启动成功后,我们尝试通过公网来访问这个服务,注意,因为项目启动在 8080 端口,还需将 8080 端口也加入安全组才行。

image.png

在浏览器中,访问这个服务:

image.png

至此,一个入门级的 SpringBoot 项目在云服务器上就部署完成了!当然,能做的远不至于此,比如部署一个博客项目,小伙伴们可以去尝试一下~

最后

本教程中,小哈带着大家从购买云服务器的事项说起,并一步一步带着大家演示了,怎样安装 JDK 环境、MySQL 数据库,以及部署一个入门级的 Spring Boot 项目,有兴趣的小伙伴可以入手买一台玩一玩~



图片

标签:面试官,登录,小哈,mysql,扎心,访问,MySQL,服务器
来源: https://blog.51cto.com/15023237/2648693