Java mysql 创建用户_创建数据库并添加管理员账号

import com.aliyuncs.DefaultAcsClient;

import com.aliyuncs.IAcsClient;

import com.aliyuncs.exceptions.ClientException;

import com.aliyuncs.exceptions.ServerException;

import com.aliyuncs.profile.DefaultProfile;

import com.aliyuncs.rds.model.v20140815.*;

import com.google.gson.Gson;

import java.util.UUID;

/**

* CreateDBInstance 创建一个RDS实例。

* CreateDatabase 在某个实例下创建数据库。

* CreateAccount 创建管理数据库的账号。

*/

public class TestCreateDatabase {

public static void main(String[] args) {

// 初始化请求参数

IAcsClient client = Initialization();

// 创建RDS实例

String DBInstanceId = CreateDBInstance(client);

// 在实例下创建数据库

CreateDatabase(client, DBInstanceId);

// 创建数据库账号

CreateAccount(client, DBInstanceId);

}

/**

* 初始化公共请求参数。

*/

private static IAcsClient Initialization() {

// 初始化请求参数

DefaultProfile profile = DefaultProfile.getProfile(

"",// 地域ID

"",// 您的AccessKey ID

"");// 您的AccessKey Secret

return new DefaultAcsClient(profile);

}

/**

* 创建RDS实例。

*

* @param client

* @return

*/

private static String CreateDBInstance(IAcsClient client) {

CreateDBInstanceRequest request = new CreateDBInstanceRequest();

// 数据库类型取值:MySQL/SQLServer/PostgreSQL/PPAS/MariaDB。

request.setEngine("MySQL");

// 数据库版本,取值:

// MySQL:5.5/5.6/5.7/8.0;

// SQL Server:2008r2/2012/2012_ent_ha/2012_std_ha/2012_web/2016_ent_ha/2016_std_ha/2016_web/2017_ent;

// PostgreSQL:9.4/10.0;

// PPAS:9.3/10.0;

// MariaDB:10.3。

request.setEngineVersion("5.7");

// 实例规格,详见实例规格表。

request.setDBInstanceClass("mysql.n4.xlarge.1");

// 实例存储空间,单位:GB。每5GB进行递增,详见实例规格表。

request.setDBInstanceStorage(20);

// 实例的网络连接类型,取值:

// Internet:公网连接;

// Intranet:内网连接。

request.setDBInstanceNetType("Internet");

// 实例的付费类型,取值:

// Postpaid:后付费(按量付费);

// Prepaid:预付费(包年包月)。

request.setPayType("Postpaid");

// 该实例的IP白名单,多个IP地址请以英文逗号(,)隔开,不可重复,最多1000个。支持如下两种格式:

// IP地址形式,例如:10.23.12.24;

// CIDR形式,例如:10.23.12.24/24(无类域间路由,24表示了地址中前缀的长度,范围为1~32)。

request.setSecurityIPList("30.40.53.25");

// 字符集,取值:

// MySQL/MariaDB实例:utf8、gbk、latin1、utf8mb4;

// SQL Server实例:Chinese_PRC_CI_AS、Chinese_PRC_CS_AS、SQL_Latin1_General_CP1_CI_AS、SQL_Latin1_General_CP1_CS_AS、Chinese_PRC_BIN。

request.setSystemDBCharset("utf8");

// 实例名称,长度为2~256个字符。以中文、英文字母开头,可以包含数字、中文、英文、下划线(_)、短横线(-)。

request.setDBInstanceDescription("测试数据库");

// 用于保证请求的幂等性,防止重复提交请求。

// 由客户端生成该参数值,要保证在不同请求间唯一,最大值不超过64个ASCII字符,且该参数值中不能包含非ASCII字符。

request.setClientToken(UUID.randomUUID().toString());

// 可用区ID。多可用区用英文冒号(:)分隔。

// 指定了VPC和交换机时,为匹配交换机对应的可用区,该参数必填。

//request.setZoneId("cn-hangzhou-b:cn-hangzhou-a:cn-hangzhou-h");

request.setZoneId("cn-hangzhou-b");

// 实例的网络类型,取值:

// VPC:VPC网络;

// Classic:经典网络。

request.setInstanceNetworkType("Classic");

// 实例的访问模式,取值:

// Standard:标准访问模式;

// Safe:数据库代理模式。

request.setConnectionMode("Standard");

// 实例存储类型,取值:

// local_ssd/ephemeral_ssd:本地SSD盘(推荐);

// cloud_ssd:SSD云盘;

// cloud_essd:ESSD云盘。

request.setDBInstanceStorageType("cloud_ssd");

try {

// 发起请求并获取返回值

// 正确的response对象中包含实例ID、数据库连接地址和数据库连接端口。(请自行保存)。

CreateDBInstanceResponse response = client.getAcsResponse(request);

// 获取数据库连接地址和数据库连接端口。

response.getConnectionString();

response.getPort();

// 获取新创建的实例ID。

String dbInstanceId = response.getDBInstanceId();

// 因为创建数据库和账号需要实例ID,所以这里需要把实例ID返回

System.out.println("---------------------------RDS实例创建成功-----------------------------------");

return dbInstanceId;

} catch (ServerException e) {

e.printStackTrace();

} catch (ClientException e) {

System.out.println("ErrCode:" + e.getErrCode());

System.out.println("ErrMsg:" + e.getErrMsg());

System.out.println("RequestId:" + e.getRequestId());

}

return null;

}

/**

* 在实例下创建数据库。

*

* @param client

* @param DBInstanceId

*/

private static void CreateDatabase(IAcsClient client, String DBInstanceId) {

// 创建APi请求并获取参数

CreateDatabaseRequest request = new CreateDatabaseRequest();

// 实例ID

request.setDBInstanceId(DBInstanceId);

// 数据库名称

request.setDBName("test11221");

// 字符集

request.setCharacterSetName("utf8");

// 数据库描述

request.setDBDescription("测试用数据库");

try {

CreateDatabaseResponse response = client.getAcsResponse(request);

// 处理业务逻辑

System.out.println("---------------------------数据库创建成功-----------------------------------");

// 在这里处理业务逻辑。

System.out.println(new Gson().toJson(response));

} catch (ServerException e) {

e.printStackTrace();

} catch (ClientException e) {

System.out.println("ErrCode:" + e.getErrCode());

System.out.println("ErrMsg:" + e.getErrMsg());

System.out.println("RequestId:" + e.getRequestId());

}

}

/**

* 创建数据库账号。

*

* @param client

* @param DBInstanceId

*/

private static void CreateAccount(IAcsClient client, String DBInstanceId) {

// 创建APi请求并获取参数

CreateAccountRequest request = new CreateAccountRequest();

// 实例ID

request.setDBInstanceId(DBInstanceId);

// 数据库账号名称

request.setAccountName("test11221");

// 数据库账号的密码。

request.setAccountPassword("test123456");

// 账号描述

request.setAccountDescription("测试账号");

// 账号类型,取值:Normal:普通账号;Super:高权限账号。

request.setAccountType("Normal");

try {

CreateAccountResponse response = client.getAcsResponse(request);

System.out.println("---------------------------数据库账号创建成功-----------------------------------");

// 在这里处理业务逻辑。

System.out.println(new Gson().toJson(response));

} catch (ServerException e) {

e.printStackTrace();

} catch (ClientException e) {

System.out.println("ErrCode:" + e.getErrCode());

System.out.println("ErrMsg:" + e.getErrMsg());

System.out.println("RequestId:" + e.getRequestId());

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值