ITPub博客

首页 > 数据库 > SQL Server > 阿里云有奖体验:如何使用 PolarDB-X

阿里云有奖体验:如何使用 PolarDB-X

原创 SQL Server 作者:bainana 时间:2022-07-01 18:01:36 0 删除 编辑

### **体验简介**


场景将提供一台配置了CentOS 8.5操作系统的ECS实例(云服务器)。通过本教程的操作,以Spring和WordPress官方教程为例,带你体验Spring Boot+PolarDB-X和WordPress+PolarDB-X的应用开发之旅。[点击前往](https://developer.aliyun.com/adc/scenario/6e7827274b004c7b9fad58ecf5404c6c)![](https://oscimg.oschina.net/oscnet/up-f697167a71fb7b15c1391e0cb1326f49be0.jpg)


### 实验准备


1\. 创建实验资源


开始实验之前,您需要先创建ECS实例资源。


1.  在实验室页面,单击 **创建资源** 。

    

2.  (可选)在实验室页面左侧导航栏中,单击 **云产品资源** 列表,可查看本次实验资源相关信息(例如IP地址、用户信息等)。

    


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


2\. 安装PolarDB-X


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


1.  安装并启动Docekr。

    


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


```

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

```


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


```

systemctl start docker

```


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

    


```

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

```


3\. 登录PolarDB-X数据库


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


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


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

    


```

yum install mysql -y

```


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

    


```

mysql -V

```


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


![](https://oscimg.oschina.net/oscnet/up-f31482f54c5b5ad88ce9d4388bd5d62a0ab.png)


1.  执行如下命令,登录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数据库。


![](https://oscimg.oschina.net/oscnet/up-4043f77e5be2664bfc1cd5bbb993a50642d.png)


4.输入exit退出数据库。


![](https://oscimg.oschina.net/oscnet/up-1a20f5985471f583dfa427f5c6215dfe6e7.png)


4\. 安装JDK


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


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

    


```

yum -y install java-1.8.0-openjdk*

```


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

    


```

java -version

```


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


![](https://oscimg.oschina.net/oscnet/up-47bfe194f32201effd31d74706bbbdb7137.png)


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


本步骤将指导您如何下载并编辑Spring Boot样例工程,并连接PolarDB-X数据库。详情请参见[Spring Boot官方教程](https://spring.io/guides/gs/accessing-data-mysql/)。


1.  安装Git。

    


执行如下命令,安装Git。


```

yum -y install git

```


1.  下载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

```


1.  创建数据库。

    


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退出数据库。


![](https://oscimg.oschina.net/oscnet/up-e73169597eec7c2d703588151a6a476a537.png)


1.  配置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键保存并退出。


![](https://oscimg.oschina.net/oscnet/up-1894693c638433f643e97ec83bcfa42b207.png)


1.  创建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键保存并退出。


![](https://oscimg.oschina.net/oscnet/up-1d9f7a5d7b3f03a7b6b8b8762dbd9bebe5d.png)


1.  创建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键保存并退出。


![](https://oscimg.oschina.net/oscnet/up-d871a8a775dffd5c62a1e7cc3d89edfa86f.png)


1.  创建一个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键保存并退出。


![](https://oscimg.oschina.net/oscnet/up-f2d446f621401d426a632259489b3a356a2.png)


1.  创建一个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键保存并退出。


![](https://oscimg.oschina.net/oscnet/up-19a3879317ca37489611b58f1218773fedd.png)


1.  运行Spring Boot样例工程。

    


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


```

./gradlew bootRun

```


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


![](https://oscimg.oschina.net/oscnet/up-44dc70157f23318b2f613f113f6a483d568.png)


1.  测试。

    


10.1 在实验页面,单击右上角的![](https://ucc.alicdn.com/pic/developer-ecology/18cb282bc9b34e48bc8c0d84918f9bec.png)图标,创建新的终端窗口。


![](https://oscimg.oschina.net/oscnet/up-fee7821141a2b3923511f6a9dd2386ea4b6.png)


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


```

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

```


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


![](https://oscimg.oschina.net/oscnet/up-9aa967d026698ae64f4fa732204bd619f42.png)


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


```

curl 'localhost:8080/demo/all' 

```


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


![](https://oscimg.oschina.net/oscnet/up-34afd91999a7e3f0bfc4d97ba15c2ca80c9.png)


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表查询到刚刚增加的记录。


![](https://oscimg.oschina.net/oscnet/up-4beed33da916fc2e454634d4b9f2a4e5cc3.png)


10.7 输入exit退出数据库。


![](https://oscimg.oschina.net/oscnet/up-602e7e773cb459748c2213d52fa52b3c9de.png)


6\. (选做)体验WordPress+PolarDB-X部


署博客站点


本步骤将指导您如何使用Wordpress的Docker镜像和PolarDB-X搭建一个博客站点。Wordpress提供了Docker镜像,方便其快速安装,详情请参见[WordPress的Docker Hub主页](https://hub.docker.com/_/wordpress)。


1.  安装WordPress。

    


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


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


```

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

```


1.  创建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退出数据库。


![](https://oscimg.oschina.net/oscnet/up-d9055b234ecdffc281f1878c8e6346acf26.png)


1.  配置WordPress。

    


3.1 在您的本机浏览器中,打开新页签,访问http://<ECS的弹性IP>:9090。


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


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


![](https://oscimg.oschina.net/oscnet/up-d4eba7c1e39136fa1f10cc2ea0c2e2510ff.png)


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


![](https://oscimg.oschina.net/oscnet/up-ae92931bf18fd75069c14e2b95787768482.png)


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


参数说明:


-   **数据库名** :默认为 wordpress 。

    

    -   **用户名** :输入 polardbx_root 。

        

    -   **密码** :输入 123456 。

        

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

        

    -   **表前缀** :默认为 wp_ 。

        


![](https://oscimg.oschina.net/oscnet/up-526e167cadc8005c0caae11c1e9dd09aff1.png)


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


![](https://oscimg.oschina.net/oscnet/up-f23f0b6aa359c226924bd6704d94480d93d.png)


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


参数说明:


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

    

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

        

    -   **密码** :输入密码。

        

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

        


![](https://oscimg.oschina.net/oscnet/up-c8558fa9d033798cc51bbe5bb4e853833e6.png)


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


![](https://oscimg.oschina.net/oscnet/up-5528a291c4b7510a7148329e04726332524.png)


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


![](https://oscimg.oschina.net/oscnet/up-585f0db5f608a14ee6ff47e9b3c68ff2c63.png)


7\. 了解更多


-   如果您想了解更多有关分布式数据库连接池的最佳实践,详情请参见 [如何选择应用端链接池](https://doc.polardbx.com/best-practice/topics/connection-pool.html) 。

    

-   如果您想下载PolarDB-X源码,详情请参见 [PolarDB-X源码](https://github.com/ApsaraDB/galaxysql) 。

    

-   关于PolarDB-X说明文档,详情请参见 [PolarDB-X说明文档](https://doc.polardbx.com/) 。

    

-   如果您对PolarDB-X内部实现原理感兴趣,可关注我们的知乎官号 [PolarDB-X](https://www.zhihu.com/org/polardb-x) 。

    


恭喜完成


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69975905/viewspace-2903919/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2020-06-02

  • 博文量
    142
  • 访问量
    71674