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

简介: 通过本教程的操作,以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 在登录页面,依次输入您的用户名和密码,单击登录。

相关文章
|
4月前
|
SQL 关系型数据库 MySQL
开源新发布|PolarDB-X v2.4.2开源生态适配升级
PolarDB-X v2.4.2开源发布,重点完善生态能力:新增客户端驱动、开源polardbx-proxy组件,支持读写分离与高可用;强化DDL变更、扩缩容等运维能力,并兼容MySQL主备复制及MCP AI生态。
开源新发布|PolarDB-X v2.4.2开源生态适配升级
|
10月前
|
人工智能 API 开发者
FastAPI开发者福音!FastAPI-MCP:将FastAPI秒变MCP服务器的开源神器,无需配置自动转换!
FastAPI-MCP是一款能将FastAPI应用端点自动转换为符合模型上下文协议(MCP)的开源工具,支持零配置自动发现接口并保留完整文档和模式定义。
5293 113
FastAPI开发者福音!FastAPI-MCP:将FastAPI秒变MCP服务器的开源神器,无需配置自动转换!
|
4月前
|
SQL 关系型数据库 MySQL
开源新发布|PolarDB-X v2.4.2开源生态适配升级
PolarDB-X v2.4.2发布,新增开源Proxy组件与客户端驱动,支持读写分离、无感高可用切换及DDL在线变更,兼容MySQL生态,提升千亿级大表运维稳定性。
1133 24
开源新发布|PolarDB-X v2.4.2开源生态适配升级
|
6月前
|
人工智能 关系型数据库 MySQL
开源PolarDB-X:单节点误删除binlog恢复
本文由邵亚鹏撰写,分享了在使用开源PolarDB-X过程中,因误删binlog导致数据库服务无法启动的问题及恢复过程。作者结合实践经验,详细介绍了在无备份情况下如何通过单节点恢复机制重启数据库,并提出了避免类似问题的几点建议,包括采用高可用部署、定期备份及升级至最新版本等。
|
9月前
|
供应链 关系型数据库 分布式数据库
2025开源之夏火热报名|一起来设计PolarDB Dashboard
2025开源之夏正在火热报名中,PolarDB邀请全球学子参与云原生与Web开发的前沿项目。活动由中国科学院软件研究所发起,旨在鼓励高校学生通过实际开发维护开源软件,培养优秀开发者,推动开源生态发展。PolarDB项目聚焦设计与开发PolarDB-X Dashboard,要求掌握K8S Client-go和Web开发技术。参与者将根据项目难度获得税前8000至12000元人民币报酬,并获取结项证书。每位学生仅可申请一个项目,详情见官网。
2025开源之夏火热报名|一起来设计PolarDB Dashboard
|
9月前
|
SQL 关系型数据库 分布式数据库
PolarDB开源数据库入门教程
PolarDB是阿里云推出的云原生数据库,基于PostgreSQL、MySQL和Oracle引擎构建,具备高性能、高扩展性和高可用性。其开源版采用计算与存储分离架构,支持快速弹性扩展和100%兼容PostgreSQL/MySQL。本文介绍了PolarDB的安装方法(Docker部署或源码编译)、基本使用(连接数据库、创建表等)及高级特性(计算节点扩展、存储自动扩容、并行查询等)。同时提供了性能优化建议和监控维护方法,帮助用户在生产环境中高效使用PolarDB。
2890 21
|
9月前
|
存储 Cloud Native 关系型数据库
PolarDB开源:云原生数据库的架构革命
本文围绕开源核心价值、社区运营实践和技术演进路线展开。首先解读存算分离架构的三大突破,包括基于RDMA的分布式存储、计算节点扩展及存储池扩容机制,并强调与MySQL的高兼容性。其次分享阿里巴巴开源治理模式,涵盖技术决策、版本发布和贡献者成长体系,同时展示企业应用案例。最后展望技术路线图,如3.0版本的多写多读架构、智能调优引擎等特性,以及开发者生态建设举措,推荐使用PolarDB-Operator实现高效部署。
459 4
|
9月前
|
Cloud Native 关系型数据库 分布式数据库
PolarDB开源:云原生数据库的新篇章
阿里云自研的云原生数据库PolarDB于2023年5月正式开源,采用“存储计算分离”架构,具备高性能、高可用及全面兼容性。其开源版本提供企业级数据库解决方案,支持MySQL、PostgreSQL和Oracle语法,适用于高并发OLTP、核心业务系统等场景。PolarDB通过开放治理与开发者工具构建完整生态,并展望更丰富的插件功能与AI集成,为中国云原生数据库技术发展贡献重要力量。
742 17
|
9月前
|
存储 关系型数据库 分布式数据库
PolarDB开源进阶篇:深度解析与实战优化指南
PolarDB是阿里云开源的云原生数据库,采用计算-存储分离架构,结合高性能共享存储与Parallel Raft多副本一致性协议,实现微秒级延迟和卓越性能。本文深入解析其架构设计,涵盖智能调度层、性能优化技巧(如查询优化器调优和分布式事务提升)、高可用与容灾配置、扩展功能开发指南以及监控运维体系。同时,通过电商平台优化案例展示实际应用效果,并展望未来演进方向,包括AI结合、多模数据库支持及Serverless架构发展。作为云原生数据库代表,PolarDB为开发者提供了强大支持和广阔前景。
536 16

热门文章

最新文章

相关产品

  • 云服务器 ECS