【ECS生长万物之开源】如何使用 PolarDB-X

本文涉及的产品
云服务器 ECS,u1 4核8GB 1个月
云服务器 ECS,u1 4核16GB 1个月
云服务器 ECS,u1 2核4GB 3个月
简介: 通过本教程的操作,以Spring和WordPress官方教程为例,带你体验Spring Boot+PolarDB-X和WordPress+PolarDB-X的应用开发之旅。

一. 创建实验资源

开始实验之前,您需要先创建ECS实例资源。可以前往实践页面完成创建。

说明 :资源创建过程需要1~3分钟。


二. 安装PolarDB-X

本步骤将指导您如何安装PolarDB-X。

1.安装并启动Docekr。

1) 执行如下命令,安装Docker。

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

2) 执行如下命令,启动Docker。

systemctl start docker

2.执行如下命令,安装PolarDB-X。

docker run -d --name some-polardb-x -p 8527:8527 polardbx/polardb-x:2.1.0


三. 登录PolarDB-X数据库

本步骤将指导您如何登录PolarDB-X数据库。

PolarDB-X支持通过MySQL Client命令行、第三方客户端以及符合MySQL交互协议的第三方程序代码进行连接。本实验场景主要介绍如何通过MySQL Client命令行连接到PolarDB-X数据库。

1.执行如下命令,安装MySQL。

yum install mysql -y

2.执行如下命令,查看MySQL版本号。

mysql -V

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

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

说明

① 本实验场景中的PolarDB-X数据库用户名和密码已预设,请您使用下方命令登录即可。

② 如遇到mysql: [Warning] Using a password on the command line interface can be insecure. ERROR 2013 (HY000): Lost connection to MySQL server at 'reading initial communication packet', system error: 0报错,请您稍等一分钟,重新执行登录命令即可。

mysql -h127.0.0.1 -P8527 -upolardbx_root -p123456

返回结果如下,表示您已成功登录PolarDB-X数据库。

4. 输入exit退出数据库。


四. 安装JDK

本步骤将指导您如何在云服务器ECS上安装JDK。

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

yum -y install java-1.8.0-openjdk*

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

java -version

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


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

本步骤将指导您如何下载并编辑Spring Boot样例工程,并连接PolarDB-X数据库。详情请参见Spring Boot官方教程

1.安装Git。

执行如下命令,安装Git。

yum -y install git

2.下载Spring Boot样例工程。

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

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

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

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

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

ls

3.创建数据库。

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

mysql -h127.0.0.1 -P8527 -upolardbx_root -p123456

3.2 执行如下SQL语句,创建数据库db_example。

create database db_example;

3.3 执行如下SQL语句,创建用户springuser。

create user 'springuser'@'%' identified by 'ThePassword';

3.4 执行如下SQL语句,给用户springuser授权。

grant all on db_example.* to 'springuser'@'%';

3.5 输入exit退出数据库。

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

4.1 执行如下命令,打开application.properties配置文件。

vim src/main/resources/application.properties

4.2 按i键进入编辑模式,找到参数spring.datasource.url,并将参数值中的端口号修改为8527。

spring.datasource.url=jdbc:mysql://${MYSQL_HOST:localhost}:8527/db_example

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

5.创建Entity Model。

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

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

5.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;
  }
}

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

6.创建Repository,保存用户记录。

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

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

6.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> {
}

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

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

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

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

7.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();
  }
}

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

8.创建一个Application。

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

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

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

8.2 按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);
  }
}

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

9.运行Spring Boot样例工程。

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

./gradlew bootRun

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

10.测试。

10.1 在实验页面,单击右上角的 图标,创建新的终端窗口。

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

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

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

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

curl 'localhost:8080/demo/all'

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

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

mysql -h127.0.0.1 -P8527 -upolardbx_root -p123456

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

use db_example;

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

select * from user;

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

10.7 输入exit退出数据库。


六. (选做)体验WordPress+PolarDB-X部署博客站点

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

1.安装WordPress。

1.1 在实验页面,切换至第一个终端窗口。按Ctrl+C键,停止运行Spring Boot样例工程。

1.2 执行如下命令,安装WordPress。

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

2.创建WordPress的数据库。

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

mysql -h127.0.0.1 -P8527 -upolardbx_root -p123456

2.2 执行如下SQL语句,创建数据库wordpress。

create database wordpress MODE='AUTO';

2.3 输入exit退出数据库。

3.配置WordPress。

3.1 在您的本机浏览器中,打开新页签,访问http://:9090。

说明 :您需要将替换为云产品资源列表中的ECS的弹性IP。

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

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

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

参数说明:

数据库名:默认为wordpress。

用户名:输入polardbx_root。

密码:输入123456。

数据库主机:输入:8527。您需要将替换为云产品资源列表中的ECS的弹性IP。

表前缀:默认为wp_。

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

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

参数说明:

站点标题:输入站点标题,例如myblog。

用户名:输入用户名,例如admin。

密码:输入密码。

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

3.7 在成功页面,单击登录。

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

相关文章
|
2月前
|
关系型数据库 分布式数据库 数据库
【PolarDB开源】PolarDB资源隔离技术:在多租户环境中的应用与优化
【5月更文挑战第29天】PolarDB,阿里云的云原生数据库,在多租户环境中通过逻辑(Schema/Partition隔离)和物理(分布式存储计算节点)隔离保障数据安全和资源独占。它支持动态资源分配,适应不同租户需求,处理大规模并发,提供租户管理及数据访问控制功能。通过优化资源分配算法、提升事务处理能力和强化监控告警,PolarDB确保性能和稳定性,满足多租户的高效数据库服务需求。
75 1
|
2天前
|
关系型数据库 分布式数据库 数据库
PolarDB,阿里云的开源分布式数据库,与微服务相结合,提供灵活扩展和高效管理解决方案。
【7月更文挑战第3天】PolarDB,阿里云的开源分布式数据库,与微服务相结合,提供灵活扩展和高效管理解决方案。通过数据分片和水平扩展支持微服务弹性,保证高可用性,且兼容MySQL协议,简化集成。示例展示了如何使用Spring Boot配置PolarDB,实现服务动态扩展。PolarDB缓解了微服务数据库挑战,加速了开发部署,为云原生应用奠定基础。
17 3
|
2天前
|
关系型数据库 分布式数据库 PolarDB
**PolarDB开源指南:构建分布式数据库集群**踏上PolarDB开源之旅,了解如何从零开始搭建分布式集群
【7月更文挑战第3天】**PolarDB开源指南:构建分布式数据库集群**踏上PolarDB开源之旅,了解如何从零开始搭建分布式集群。采用存储计算分离架构,适用于大规模OLTP和OLAP。先准备硬件和软件环境,包括Linux、Docker和Git。然后,克隆源码,构建Docker镜像,部署控制节点和计算节点。使用PDCli验证集群状态,开始探索PolarDB的高性能与高可用性。在实践中深化学习,贡献于数据库技术创新。记得在安全环境下测试。
9 1
|
17天前
|
弹性计算 关系型数据库 分布式数据库
PolarDB 开源部署体验评测
PolarDB开源部署方式全解读,带你全方位了解PolarDB部署的那些事。
366 10
|
17天前
|
关系型数据库 MySQL Java
关系型数据库mysql的开源与授权
【6月更文挑战第12天】
137 3
|
1月前
|
Ubuntu 关系型数据库 分布式数据库
开源PolarDB -X 部署安装
本文记录了在Ubuntu 20.04上部署阿里云分布式数据库PolarDB-X的步骤,包括环境准备、安装依赖、下载源码、编译安装、配置启动,并分享了遇到的配置错误、依赖冲突和日志不清等问题。作者建议官方改进文档细节、优化代码质量和建立开发者社区。安装历史记录显示了相关命令行操作。尽管过程有挑战,但作者期待产品体验的提升。
235 6
|
1月前
|
存储 弹性计算 关系型数据库
PolarDB 开源评测
摘要: 本文介绍了开源PolarDB-X的部署安装步骤,包括下载安装包、环境准备、配置参数、初始化数据库和启动服务。在安装过程中可能遇到的难题有依赖库缺失、配置错误、端口占用和权限问题。建议优化帮助文档、增加错误提示、自动检查端口和改进权限管理。安装命令示例包括wget下载、tar解压、配置参数和启动服务。 另外,还简述了开源PolarDB-PG在阿里云ECS+ESSD云盘共享存储的安装,涉及创建ECS实例、安装PostgreSQL、配置共享存储和部署PolarDB-PG。面临挑战包括网络配置、存储性能和数据同步。建议提供云环境部署指南、性能调优工具和数据同步监控功能。
|
1月前
|
关系型数据库 MySQL 分布式数据库
PolarDB 开源评测
阿里云PolarDB,一款分布式云原生数据库,以其高性能(交易性能6倍于开源DB,分析性能高达400倍)、强可扩展性(秒级弹性伸缩)、良好兼容性(100%适配MySQL/PostgreSQL,高度兼容Oracle)和易用性(丰富的监控管理功能,灵活备份恢复)脱颖而出。它是应对高并发业务和突发流量的理想选择,尤其适合寻求高性能、高可用和高扩展性的企业。
58 2
|
11天前
|
缓存 负载均衡 应用服务中间件
Nginx 是一个高性能的开源反向代理服务器和 Web 服务器
Nginx 是一个高性能的开源反向代理服务器和 Web 服务器
16 0
|
2月前
|
Kubernetes 关系型数据库 分布式数据库
【PolarDB开源】PolarDB在混合云环境下的部署策略与挑战
【5月更文挑战第29天】PolarDB,阿里云的高性能分布式数据库,应对混合云环境的部署策略包括:灵活的架构选择(如Kubernetes)、跨云平台数据实时同步及内置安全特性保障数据安全。然而,也面临复杂性、成本优化和运维难度等挑战。示例展示了使用Kubernetes StatefulSet部署PolarDB的基本配置。
228 3

相关产品

  • 云服务器 ECS