实践教程之如何快速使用 PolarDB-X

PolarDB-X 为了方便用户体验,提供了免费的实验环境,您可以在实验环境里体验 PolarDB-X 的安装部署和各种内核特性。除了免费的实验,PolarDB-X 也提供免费的视频课程,手把手教你玩转 PolarDB-X 分布式数据库。

本期实验可以让您快速体验PolarDB-X,让你像使用单机MySQL一样使用分布式数据库,直观感受PolarDB-X的MySQL兼容性。

本期免费实验地址

本期教学视频地址

1.前置准备

假设已经根据前一讲内容完成了PolarDB-X的搭建部署,可以成功链接上PolarDB-X数据库。

2.安装JDK

执行如下命令,使用yum安装JDK 1.8。

yum -y install java-1.8.0-openjdk*

执行如下命令,查看是否安装成功

java -version

返回结果如下,表示您已成功安装JDK 1.8。

图片

3.体验 Spring Boot+PolarDB-X 应用开发

执行如下命令,安装Git。

yum -y install git

执行如下命令,下载Spring Boot样例工程。

git clone https://github.com/spring-guides/gs-accessing-data-mysql.git

执行如下命令,进入initial目录。

cd gs-accessing-data-mysql/initial git checkout b8408e3a1e05008811d542b706107d45160556ac

执行如下命令,查看样例工程代码。

ls

创建数据库

1 执行如下命令,登录PolarDB-X数据库。
mysql -h127.0.0.1 -P8527 -upolardbx_root -p123456

2 执行如下SQL语句,创建数据库db_example。
create database db_example;

3 执行如下SQL语句,创建用户springuser。
create user 'springuser'@'%' identified by 'ThePassword';

4 执行如下SQL语句,给用户springuser授权。
grant all on db_example.* to 'springuser'@'%';

5 输入exit退出数据库。

配置application.properties文件,将数据库连接到Spring Boot样例工程。

1 执行如下命令,打开application.properties配置文件。
vim src/main/resources/application.properties

2 按i键进入编辑模式,找到参数spring.datasource.url,并将参数值中的端口号修改为8527。
spring.datasource.url=jdbc:mysql://${MYSQL_HOST:localhost}:8527/db_example

3 修改完成后的文件内容如下所示。按下Esc键后,输入:wq后按下Enter键保存并退出。

图片

创建Entity Model1

执行如下命令,创建一个User类。

vim src/main/java/com/example/accessingdatamysql/User.java

2 将如下代码复制粘贴到User类中。

package com.example.accessingdatamysql;  
import javax.persistence.Entity; 
import javax.persistence.GeneratedValue; 
import javax.persistence.GenerationType; 
import javax.persistence.Id;  
@Entity // This tells Hibernate to make a table out of this class 
public class User {
   @Id
   @GeneratedValue(strategy=GenerationType.AUTO)
   private Integer id;
   private String name;
   private String email;
   public Integer getId() {
     return id;
   }
   public void setId(Integer id) {
     this.id = id;
   }
   public String getName() {
     return name;
   }
   public void setName(String name) {
     this.name = name;
   }
   public String getEmail() {
     return email;   }
   public void setEmail(String email) {
     this.email = email;
   }
 }

3 修改完成后的文件内容如下所示。按下Esc键后,输入:wq后按下Enter键保存并退出。

图片

创建Repository,保存用户记录

1 执行如下命令,创建一个UserRepository类。

vim src/main/java/com/example/accessingdatamysql/UserRepository.java

2 将如下代码复制粘贴到UserRepository类中。

package com.example.accessingdatamysql;  import org.springframework.data.repository.CrudRepository;  import com.example.accessingdatamysql.User;  // This will be AUTO IMPLEMENTED by Spring into a Bean called userRepository // CRUD refers Create, Read, Update, Delete  public interface UserRepository extends CrudRepository<User, Integer> {  }

3 修改完成后的文件内容如下所示。按下Esc键后,输入:wq后按下Enter键保存并退出。

图片

创建一个Controller类,处理对应用程序的HTTP请求

1 执行如下命令,创建一个MainController类。

vim src/main/java/com/example/accessingdatamysql/MainController.java

2 将如下代码复制粘贴到MainController类中。

package com.example.accessingdatamysql;
import org.springframework.beans.factory.annotation.Autowired; 
import org.springframework.stereotype.Controller; 
import org.springframework.web.bind.annotation.GetMapping; 
import org.springframework.web.bind.annotation.PostMapping; 
import org.springframework.web.bind.annotation.RequestMapping; 
import org.springframework.web.bind.annotation.RequestParam; 
import org.springframework.web.bind.annotation.ResponseBody;  
@Controller // This means that this class is a Controller 
@RequestMapping(path="/demo") // This means URL's start with /demo (after Application path) 
public class MainController {
   @Autowired 
   // This means to get the bean called userRepository
   // Which is auto-generated by Spring, we will use it to handle the data
   private UserRepository userRepository;
   @PostMapping(path="/add")
   // Map ONLY POST Requests
   public @ResponseBody String addNewUser (@RequestParam String name
       , @RequestParam String email) {
   // @ResponseBody means the returned String is the response, not a view name     
   // @RequestParam means it is a parameter from the GET or POST request      
     User n = new User();
     n.setName(name);
     n.setEmail(email);
     userRepository.save(n);
     return "Saved";
   }

   @GetMapping(path="/all")
   public @ResponseBody Iterable<User> getAllUsers() {
     // This returns a JSON or XML with the users
     return userRepository.findAll();
   }
 }

3 修改完成后的文件内容如下所示。按下Esc键后,输入:wq后按下Enter键保存并退出。

图片

创建一个Application

说明 :Spring Boot样例工程中已为您创建好AccessingDataMysqlApplication类,您可跳过此步骤。

1 执行如下命令,创建一个AccessingDataMysqlApplication类。

vim src/main/java/com/example/accessingdatamysql/AccessingDataMysqlApplication.java2 按i键进入编辑模式,将如下代码复制粘贴到User类中。package com.example.accessingdatamysql;  
import org.springframework.boot.SpringApplication; 
import org.springframework.boot.autoconfigure.SpringBootApplication;  
@SpringBootApplication
 public class AccessingDataMysqlApplication {
    public static void main(String[] args) {
     SpringApplication.run(AccessingDataMysqlApplication.class, args);
   }
  }

3 修改完成后的文件内容如下所示。按下Esc键后,输入:wq后按下Enter键保存并退出。

图片

运行Spring Boot样例

工程执行如下命令,运行Spring Boot样例工程。

./gradlew bootRun

请您耐心等待大约两分钟,返回结果如下,表示您成功运行。

图片

测试

在实验页面,单击右上角的

图片

图标,创建新的终端窗口。

图片

在新的终端窗口中,执行如下命令,增加一条记录。

curl localhost:8080/demo/add -d name=First -d email=username@example.com

返回结果如下,表示您成功增加一条记录。

图片
执行如下命令,查询记录。

curl 'localhost:8080/demo/all'

返回结果如下,您可以查询到刚刚增加的记录信息。

图片

执行如下命令,登录PolarDB-X数据库。

mysql -h127.0.0.1 -P8527 -upolardbx_root -p123456

执行如下SQL语句,使用数据库。

use db_example;

执行如下SQL语句,查询user表。

select * from user;

返回如下结果,您可以在user表查询到刚刚增加的记录。

图片

输入exit退出数据库。

4.体验WordPress+PolarDB-X部署博客站点

本步骤将指导您如何使用Wordpress的Docker镜像和PolarDB-X搭建一个博客站点。Wordpress提供了Docker镜像,方便其快速安装,详情请参见WordPress的Docker Hub主页。

安装WordPress

执行如下命令,安装WordPress。

docker run --name some-wordpress -p 9090:80 -d wordpress

创建WordPress的数据库。

1 执行如下命令,登录PolarDB-X数据库。
mysql -h127.0.0.1 -P8527 -upolardbx_root -p123456

2 执行如下SQL语句,创建数据库wordpress。
create database wordpress MODE='AUTO';

3 输入exit退出数据库。

配置WordPress

在您的本机浏览器中,打开新页签,访问https://developer.aliyun.com/article/1114989;ECS的弹性IP>:9090。

在初始化页面,选择简体中文,单击继续。

图片

在准备页面,单击现在就开始。

图片

在数据库配置页面,参考说明配置数据库信息,单击提交。

参数说明:

数据库名:默认为wordpress。
用户名:输入polardbx_root。
密码:输入123456。
数据库主机:输入<ECS的弹性IP>:8527。您需要将<ECS的弹性IP>替换为云产品资源列表中的ECS的弹性IP。
表前缀:默认为wp_。

图片

在数据库配置完成页面,单击运行安装程序。

图片

在信息配置页面,参考说明配置相关信息,单击安装WordPress。

参数说明:

站点标题:输入站点标题,例如myblog。
用户名:输入用户名,例如admin。
密码:输入密码。
您的电子邮箱地址:输入邮箱地址。建议使用真实有效的邮箱地址,若没有,可以填写虚拟邮箱地址,但将无法接收信息,例如username@example.com

图片

在成功页面,单击登录。

图片

在登录页面,依次输入您的用户名和密码,单击登录。

图片

原文链接

本文为阿里云原创内容,未经允许不得转载。


阿里云栖号
汇集阿里技术精粹-yq.aliyun.com

阿里云官网内容平台!

27.6k 声望
35.6k 粉丝
0 条评论
推荐阅读
日志服务SLS 助力 Hago,积极开辟社交泛娱乐出海征程
2022年人均移动设备使用时长近5小时,其中社交类应用占据了约70%。随着市场需求与用户规模的持续增长,社交泛娱乐产业成为新蓝海,越来越多的创新场景应用应运而生:社交+直播,社交+Avatar,社交+游戏...通过形...

阿里云云栖号

花了几个月时间把 MySQL 重新巩固了一遍,梳理了一篇几万字 “超硬核” 的保姆式学习教程!(持续更新中~)
MySQL 是最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。

民工哥11阅读 1k

封面图
一次偶然机会发现的MySQL“负优化”
今天要讲的这件事和上述的两个sql有关,是数年前遇到的一个关于MySQL查询性能的问题。主要是最近刷到了一些关于MySQL查询性能的文章,大部分文章中讲到的都只是一些常见的索引失效场合,于是我回想起了当初被那个...

骑牛上青山8阅读 2.2k评论 2

云计算再爆新热点,SnapStart解决Serverless冷启动问题
Amazon Lambda无服务器函数作为亚马逊云科技主推的云原生技术,是不折不扣的云原生第一梯队。Lambda无服务器函数自2014年由亚马逊云科技推出以来,被越来越多的云原生应用所使用,到目前为止已经累计关联了100余...

思否编辑部5阅读 16.4k

阿里云被曝 UI 抄袭,复刻 SkyWalking Trace Profiling 页面
2023 年 1 月 3 日,SkyWalking 官网发布消息,称阿里云抄袭了 SkyWalking Trace Profiling 整体页面 UI,包括页面布局、文字和分析任务设置,唯一的区别仅有颜色方案。

鸣飞5阅读 5.3k

程序员英语学习指南
动机为什么程序员要学习英语?工作:我们每天接触的代码都是英文的、包括很多技术文档也是英文的学习:最新最前沿的技术最开始都是只有English版本就业:学好英语让你的就业范围扩大到全球,而不只限于国内目标读...

九旬6阅读 636

又一款内存数据库横空出世,比 Redis 更强,性能直接飙升一倍!杀疯了
KeyDB是Redis的高性能分支,专注于多线程,内存效率和高吞吐量。除了多线程之外,KeyDB还具有仅在Redis Enterprise中可用的功能,例如Active Replication,FLASH存储支持以及一些根本不可用的功能,例如直接备份...

民工哥4阅读 732评论 1

封面图

阿里云官网内容平台!

27.6k 声望
35.6k 粉丝
宣传栏