云服务器内容精选

  • 步骤四:连接数据库 在DBeaver客户端单击,打开创建连接界面。 搜索步骤三中创建的驱动,选中驱动,单击“下一步”。 图1 选择驱动 输入主机IP地址,端口,数据库名,用户名和密码。 表3 参数说明 参数 描述 主机 目标实例的内网地址。查看目标实例的内网地址及端口信息的步骤如下: 登录云数据库GaussDB的管理控制台。 选择目标实例所在区域。 单击目标实例名称,进入“基本信息”页面。 在“连接信息”模块,查看“弹性公网IP”信息。 如果未绑定弹性公网IP,则需要为数据库实例绑定弹性公网IP。具体操作请参考绑定弹性公网IP。 端口 需要连接的数据库端口。创建实例时自定义的端口,GaussDB实例的默认端口为8000。 数据库/模式 需要连接的数据库名。实例创建成功后,会默认生成名称为postgres的数据库。 用户名 需要访问GaussDB实例的账号名称。默认root。 密码 要访问GaussDB实例的账号所对应的密码。 单击“测试链接”。若弹框中显示“已连接”,则说明可正常连接,单击“确定”。 单击“完成”,即可连接到数据库。在“数据库导航”栏可查看到连接的数据库信息。
  • 步骤一:获取驱动包 获取驱动包和驱动包校验包。 根据不同版本的实例,下载对应版本的驱动包和驱动包校验包到本地任意目录,如表1所示。 表1 驱动包下载列表 版本 下载地址 3.x 驱动包 驱动包校验包 2.x 驱动包 驱动包校验包 校验驱动包。 为了防止驱动包在传递过程或存储期间被恶意篡改,需要对驱动包进行校验,校验方法如下: 使用快捷键“Win+R”打开“运行”窗口。 在“打开”栏,输入“cmd”,按“Enter”回车,打开命令行页面。 执行以下命令,获取驱动包的Hash值。 certutil -hashfile {驱动包本地目录}\{驱动包名} sha256 {驱动包本地目录}:请根据实际下载目录进行替换。例如:C:\Users {驱动包名}:请根据实际下载的驱动包名进行替换。例如:GaussDB_driver.zip 示例:certutil -hashfile C:\Users\GaussDB_driver.zip sha256 将2.b获取到的Hash值和1中获取到的驱动包校验包的Hash值进行比较。 若一致则通过校验。 若不一致,请重新下载驱动包,重复2.a~2.c进行校验。 解压驱动包。 将1中获取到的驱动包解压到本地, 找到gsjdbc4.jar包,放在本地任意目录下。
  • 命令行模式连接实例 下载“rocketmq-tutorial”示例软件包。 wget https://dms-demos.obs.cn-north-1.myhuaweicloud.com/rocketmq-tutorial.zip 解压“rocketmq-tutorial”。 unzip rocketmq-tutorial.zip (可选)如果RocketMQ实例开启了ACL访问控制,执行mqadmin命令时,需要鉴权。 切换到解压后的软件包目录下,在“conf/tools.yml”文件中,增加如下内容。 accessKey:******* secretKey:******* accessKey和secretKey表示在控制台“用户管理”页面,创建的用户名和密钥。 进入“rocketmq-tutorial/bin”目录。 cd rocketmq-tutorial/bin 运行生产普通消息示例。 JAVA_OPT=-Dtls.enable=true sh mqadmin sendMessage -n "${连接地址}" -t ${Topic名称} -p "hello rocketmq" 参数说明如下: 连接地址:表示RocketMQ实例的“连接地址”(内网访问)/“公网连接地址”(公网访问)。 Topic名称:RocketMQ实例下创建的Topic名称。 示例如下,其中“100.xxx.xxx.89:8200;100.xxx.xxx.144:8200”为RocketMQ实例的元数据公网连接地址,“topic-test”为Topic名称。 JAVA_OPT=-Dtls.enable=true sh mqadmin sendMessage -n "100.xxx.xxx.89:8200;100.xxx.xxx.144:8200" -t topic-test -p "hello rocketmq" 使用Ctrl+C命令退出。 运行消费普通消息示例。 JAVA_OPT=-Dtls.enable=true sh mqadmin consumeMessage -n "${连接地址}" -t ${Topic名称} 参数说明如下: 连接地址:表示RocketMQ实例的“连接地址”(内网访问)/“公网连接地址”(公网访问)。 Topic名称:RocketMQ实例下创建的Topic名称。 示例如下,其中“100.xxx.xxx.89:8200;100.xxx.xxx.144:8200”为RocketMQ实例的元数据公网连接地址,“topic-test”为Topic名称。 JAVA_OPT=-Dtls.enable=true sh mqadmin consumeMessage -n "100.xxx.xxx.89:8200;100.xxx.xxx.144:8200" -t topic-test 如需停止消费使用Ctrl+C命令退出。 运行生产带消息轨迹的消息示例。 JAVA_OPT=-Dtls.enable=true sh mqadmin sendMessage -n "${连接地址}" -t ${Topic名称} -p "hello rocketmq" -m true 参数说明如下: 连接地址:表示RocketMQ实例的“连接地址”(内网访问)/“公网连接地址”(公网访问)。 Topic名称:RocketMQ实例下创建的Topic名称。 示例如下,其中“100.xxx.xxx.89:8200;100.xxx.xxx.144:8200”为RocketMQ实例的元数据公网连接地址,“topic-test”为Topic名称。 JAVA_OPT=-Dtls.enable=true sh mqadmin sendMessage -n "100.xxx.xxx.89:8200;100.xxx.xxx.144:8200" -t topic-test -p "hello rocketmq" -m true 使用Ctrl+C命令退出。 运行消费消息示例,并发送消息轨迹。 JAVA_OPT=-Dtls.enable=true sh mqadmin consumeMessage -n "${连接地址}" -t ${Topic名称} -m true 参数说明如下: 连接地址:表示RocketMQ实例的“连接地址”(内网访问)/“公网连接地址”(公网访问)。 Topic名称:RocketMQ实例下创建的Topic名称。 示例如下,其中“100.xxx.xxx.89:8200;100.xxx.xxx.144:8200”为RocketMQ实例的元数据公网连接地址,“topic-test”为Topic名称。 JAVA_OPT=-Dtls.enable=true sh mqadmin consumeMessage -n "100.xxx.xxx.89:8200;100.xxx.xxx.144:8200" -t topic-test -m true 使用Ctrl+C命令退出。
  • 步骤1:购买ECS 登录管理控制台,查看是否有弹性云服务器。 有Linux弹性云服务器,执行3。 有Windows弹性云服务器,参考通过公网连接RDS for MySQL实例(Windows方式)。 无弹性云服务器,执行2。 图1 ECS实例 购买弹性云服务器时,选择Linux操作系统,例如CentOS。 由于需要在ECS下载MySQL客户端,因此需要为ECS绑定弹性公网IP(EIP)。 购买Linux弹性云服务器请参考《弹性云服务器快速入门》中“购买弹性云服务器”章节。 在ECS实例基本信息页,查看ECS实例的区域和VPC。 图2 ECS基本信息 在RDS for MySQL实例基本信息页,查看RDS实例的区域和VPC。 图3 MySQL基本信息
  • 步骤2:测试连通性并安装MySQL客户端 登录ECS实例,请参见《弹性云服务器用户指南》中“SSH密码方式登录”。 在RDS“实例管理”页面,单击实例名称进入“基本信息”页面。 选择“连接管理”,在“连接信息”模块获取实例的公网地址和数据库端口。 图4 连接信息 如果没有绑定公网地址,请参见绑定弹性公网IP。 在ECS上测试是否可以正常连接到RDS for MySQL实例公网地址的端口。 telnet 公网地址 3306 如果可以通信,说明网络正常。 如果无法通信,请检查安全组规则。 查看ECS的安全组的出方向规则,如果目的地址不为“0.0.0.0/0”且协议端口不为“全部”,需要将RDS实例的公网IP地址和端口添加到出方向规则。 图5 ECS的安全组 查看RDS的安全组的入方向规则,如果源地址不为“0.0.0.0/0”且协议端口不为“全部”,需要将ECS实例的私有IP地址和端口添加到入方向规则,具体操作请参考设置安全组规则。 图6 RDS的安全组 在浏览器下载Linux系统的MySQL客户端安装包。 找到对应版本链接,以mysql-community-client-5.7.38-1.el6.x86_64.rpm为例,下载安装包。建议您下载的MySQL客户端版本高于已创建的RDS实例中数据库版本。 图7 下载 将安装包上传到ECS。 您可以使用任何终端连接工具(如WinSCP、PuTTY等工具)将安装包上传至ECS。 在ECS上执行以下命令安装MySQL客户端。 rpm -ivh --nodeps mysql-community-client-5.7.38-1.el6.x86_64.rpm 如果安装过程中报conflicts,可增加replacefiles参数重新安装,如下: rpm -ivh --replacefiles mysql-community-client-5.7.38-1.el6.x86_64.rpm 如果安装过程中提示需要安装依赖包,可增加nodeps参数重新安装,如下: rpm -ivh --nodeps mysql-community-client-5.7.38-1.el6.x86_64.rpm
  • 权限配置 使用IAM(统一身份认证)的用户,需要给对应的子用户授予DAS FullAccess权限,否则子用户无法正常使用该功能。具体授权的操作请参见创建用户并授权。 同时您也可以通过创建自定义策略的方式来限制有权限的数据库类型,具体操作如下: 登录统一身份认证服务页面,单击“创建自定义策略”。 图1 创建自定义策略 设置策略名称、策略配置方式、策略内容等信息。 图2 配置自定义策略 表1 自定义策略信息 参数名称 描述 策略名称 输入策略名称。 策略配置方式 此处选择“JSON视图”。 策略内容 在策略内容中配置如下自定义策略: { "Version": "1.1", "Statement": [ { "Action": [ "das:*:*", "nosql:instance:list" ], "Effect": "Allow" } ] } 或者您也可以在“策略内容”区域,单击“从已有策略复制”,选择“DAS FullAccess”作为模板,然后只保留对应的DB类型就可以指定权限的范围,此处只需要保留“nosql:instance:list”即可。 策略描述 输入策略描述。 作用范围 默认项目级服务 单击“确定”,返回权限页面,可以查看到创建成功的自定义策略。 图3 查看自定义策略 创建用户组。 图4 创建用户组 为4创建的用户组授权3已创建好的自定义策略。 图5 授权自定义策略 图6 选择自定义策略 单击用户组名称,进入用户组管理,添加对应的子用户即可。 图7 添加子用户
  • 完整示例 #!/usr/bin/python import pymongo import random import os # 认证用的用户名和密码直接写到代码中有很大的安全风险,建议在配置文件或者环境变量中存放(密码应密文存放、使用时解密),确保安全 # 本示例以用户名和密码保存在环境变量中为例,运行本示例前请先在本地环境中设置环境变量(环境变量名称请根据自身情况进行设置)EXAMPLE_USERNAME_ENV和EXAMPLE_PASSWORD_ENV username = os.getenv('EXAMPLE_USERNAME_ENV') password = os.getenv('EXAMPLE_PASSWORD_ENV') mongodbUri = 'mongodb://%s:%s@10.66.187.127:27017/admin' client = pymongo.MongoClient(mongodbUri % (username, password )) db = client.somedb db.user.drop() element_num=10 for id in range(element_num): name = random.choice(['R9','cat','owen','lee','J']) sex = random.choice(['male','female']) db.user.insert_one({'id':id, 'name':name, 'sex':sex}) content = db.user.find() for i in content: print i 更多PyMongo接口请参考官方文档。 父主题: 基于Python连接实例
  • 前提条件 连接数据库的弹性云服务器必须和GeminiDB Mongo实例之间网络互通,可以使用curl命令连接GeminiDB Mongo实例服务端的IP和端口号,测试网络连通性。 curl ip:port 返回“It looks like you are trying to access MongoDB over HTTP on the native driver port.”,说明网络互通。 如果开启SSL,需要在界面上下载根证书,并上传到弹性云服务器。
  • 使用连接池方式连接实例的Java代码示例 package influxdb; import okhttp3.ConnectionPool; import okhttp3.OkHttpClient; import org.influxdb.InfluxDB; import org.influxdb.InfluxDBFactory; import org.influxdb.dto.Point; import org.influxdb.dto.Query; import org.influxdb.dto.QueryResult; import java.util.concurrent.TimeUnit; public class demoConnectionPool { public static void main(String[] args) { // 客户端连接池功能基于OkHttpClient实现 OkHttpClient.Builder client = new OkHttpClient().newBuilder(); client.connectTimeout(10, TimeUnit.SECONDS); client.readTimeout(10, TimeUnit.SECONDS); client.writeTimeout(10, TimeUnit.SECONDS); // 建议设为true,屏蔽部分连接错误,并自动进行重试 client.retryOnConnectionFailure(true); // maxIdleConnections指连接池最多维护的未使用的Idle连接数量,默认值是5 // 超过阈值的idle连接会由连接池关闭,关闭后sockets进入TIME_WAIT状态等待系统回收,该参数需根据实际连接数适当调整 client.connectionPool(new ConnectionPool(5, 30, TimeUnit.SECONDS)); // 认证用的用户名和密码直接写到代码中有很大的安全风险,建议在配置文件或者环境变量中存放(密码应密文存放、使用时解密),确保安全; // 本示例以用户名和密码保存在环境变量中为例,运行本示例前请先在本地环境中设置环境变量(环境变量名称请根据自身情况进行设置)EXAMPLE_USERNAME_ENV和EXAMPLE_PASSWORD_ENV。 String username = System.getenv("EXAMPLE_USERNAME_ENV"); String password = System.getenv("EXAMPLE_PASSWORD_ENV"); final String serverURL = "http://127.0.0.1:8086", username = username, password = password; InfluxDB influxdb = InfluxDBFactory.connect(serverURL, username, password, client); // Create a database... String databaseName = "foo"; influxdb.query(new Query("CREATE DATABASE " + databaseName, databaseName)); influxdb.setDatabase(databaseName); // Write points to influxdb. influxdb.write(Point.measurement("bar") .time(System.currentTimeMillis(), TimeUnit.MILLISECONDS) .tag("location", "chengdu") .addField("temperature", 22) .build()); // Query your data using InfluxQL. QueryResult queryResult = influxdb.query(new Query("SELECT * FROM bar", databaseName)); // Close it if your application is terminating or you are not using it anymore. influxdb.close(); } }
  • 使用非SSL方式连接实例的Java代码示例 package influxdb; import okhttp3.OkHttpClient; import org.influxdb.InfluxDB; import org.influxdb.InfluxDBFactory; import org.influxdb.dto.Point; import org.influxdb.dto.Query; import org.influxdb.dto.QueryResult; import java.util.concurrent.TimeUnit; public class demoNoSSL { public static void main(String[] args) { OkHttpClient.Builder client = new OkHttpClient.Builder() .connectTimeout(10, TimeUnit.SECONDS) .writeTimeout(10, TimeUnit.SECONDS) .readTimeout(10, TimeUnit.SECONDS) .retryOnConnectionFailure(true); // 认证用的用户名和密码直接写到代码中有很大的安全风险,建议在配置文件或者环境变量中存放(密码应密文存放、使用时解密),确保安全; // 本示例以用户名和密码保存在环境变量中为例,运行本示例前请先在本地环境中设置环境变量(环境变量名称请根据自身情况进行设置)EXAMPLE_USERNAME_ENV和EXAMPLE_PASSWORD_ENV。 String username = System.getenv("EXAMPLE_USERNAME_ENV"); String password = System.getenv("EXAMPLE_PASSWORD_ENV"); final String serverURL = "http://127.0.0.1:8086", username = username, password = password; InfluxDB influxdb = InfluxDBFactory.connect(serverURL, username, password, client); // Create a database... String databaseName = "foo"; influxdb.query(new Query("CREATE DATABASE " + databaseName, databaseName)); influxdb.setDatabase(databaseName); // Write points to influxdb. influxdb.write(Point.measurement("bar") .time(System.currentTimeMillis(), TimeUnit.MILLISECONDS) .tag("location", "chengdu") .addField("temperature", 22) .build()); // Query your data using InfluxQL. QueryResult queryResult = influxdb.query(new Query("SELECT * FROM bar", databaseName)); // Close it if your application is terminating or you are not using it anymore. influxdb.close(); } }
  • 使用SSL方式连接实例的Java代码示例 package influxdb; import java.security.SecureRandom; import java.security.cert.X509Certificate; import java.util.concurrent.TimeUnit; import javax.net.ssl.SSLContext; import okhttp3.OkHttpClient; import org.influxdb.InfluxDB; import org.influxdb.InfluxDBFactory; import org.influxdb.dto.Point; import org.influxdb.dto.Query; import org.influxdb.dto.QueryResult; import org.apache.http.ssl.SSLContexts; import javax.net.ssl.*; public class demo { public static void main(String[] args) { OkHttpClient.Builder client = new OkHttpClient.Builder() .connectTimeout(10, TimeUnit.SECONDS) .writeTimeout(10, TimeUnit.SECONDS) .readTimeout(10, TimeUnit.SECONDS) .retryOnConnectionFailure(true); client.sslSocketFactory(defaultSslSocketFactory(), defaultTrustManager()); client.hostnameVerifier(noopHostnameVerifier()); // 认证用的用户名和密码直接写到代码中有很大的安全风险,建议在配置文件或者环境变量中存放(密码应密文存放、使用时解密),确保安全; // 本示例以用户名和密码保存在环境变量中为例,运行本示例前请先在本地环境中设置环境变量(环境变量名称请根据自身情况进行设置)EXAMPLE_USERNAME_ENV和EXAMPLE_PASSWORD_ENV。 String username = System.getenv("EXAMPLE_USERNAME_ENV"); String password = System.getenv("EXAMPLE_PASSWORD_ENV"); final String serverURL = "https://127.0.0.1:8086", username = username, password = password; InfluxDB influxdb = InfluxDBFactory.connect(serverURL, username, password, client); // Create a database... String databaseName = "foo"; influxdb.query(new Query("CREATE DATABASE " + databaseName, databaseName)); influxdb.setDatabase(databaseName); // Write points to influxdb. influxdb.write(Point.measurement("bar") .time(System.currentTimeMillis(), TimeUnit.MILLISECONDS) .tag("location", "chengdu") .addField("temperature", 22) .build()); // Query your data using InfluxQL. QueryResult queryResult = influxdb.query(new Query("SELECT * FROM bar", databaseName)); // Close it if your application is terminating or you are not using it anymore. influxdb.close(); } private static X509TrustManager defaultTrustManager() { return new X509TrustManager() { public X509Certificate[] getAcceptedIssuers() { return new X509Certificate[0]; } public void checkClientTrusted(X509Certificate[] certs, String authType) { } public void checkServerTrusted(X509Certificate[] certs, String authType) { } }; } private static SSLSocketFactory defaultSslSocketFactory() { try { SSLContext sslContext = SSLContexts.createDefault(); sslContext.init(null, new TrustManager[] { defaultTrustManager() }, new SecureRandom()); return sslContext.getSocketFactory(); } catch (Exception e) { throw new RuntimeException(e); } } private static HostnameVerifier noopHostnameVerifier() { return new HostnameVerifier() { @Override public boolean verify(final String s, final SSLSession sslSession) { return true;//true 表示使用ssl方式,但是不校验ssl证书,建议使用这种方式 } }; } }
  • 执行读写 使用 Session.Query 创建查询。查询参数不能用于其他语句,并且不能在开始查询之后进行修改。 要在不读取结果的情况下执行查询,请使用 Query.Exec: err := session.Query(`INSERT INTO tweet (timeline, id, text) VALUES (?, ?, ?)`, "me", gocql.TimeUUID(), "hello world").WithContext(ctx).Exec() 可以通过调用 Query.Scan 读取单行: err := session.Query(`SELECT id, text FROM tweet WHERE timeline = ? LIMIT 1`, "me").WithContext(ctx).Consistency(gocql.One).Scan(&id, &text) 可以使用 Iter.Scanner 读取多行: scanner := session.Query(`SELECT id, text FROM tweet WHERE timeline = ?`, "me").WithContext(ctx).Iter().Scanner() for scanner.Next() { var ( id gocql.UUID text string ) err = scanner.Scan(&id, &text) if err != nil { log.Fatal(err) } fmt.Println("Tweet:", id, text) } // scanner.Err() closes the iterator, so scanner nor iter should be used afterwards. if err := scanner.Err(); err != nil { log.Fatal(err) }
  • 操作步骤 获取GeminiDB Cassandra实例的内网IP地址、端口。 内网IP地址和端口的获取方法请参见查看IP地址和端口。 登录弹性云服务器,具体操作请参见《弹性云服务器快速入门》中“登录弹性云服务器”。 编辑连接GeminiDB Cassandra实例的代码。 import ( "os" ) // Default LoadBalancingPolicy RoundRobinHostPolicy cluster := gocql.NewCluster("127.0.0.1,127.0.0.2,127.0.0.3") // 认证用的用户名和密码直接写到代码中有很大的安全风险,建议在配置文件或者环境变量中存放(密码应密文存放、使用时解密),确保安全; // 本示例以用户名和密码保存在环境变量中为例,运行本示例前请先在本地环境中设置环境变量(环境变量名称请根据自身情况进行设置)EXAMPLE_USERNAME_ENV和EXAMPLE_PASSWORD_ENV。 username = os.Getenv("EXAMPLE_USERNAME_ENV"), password = os.Getenv("EXAMPLE_PASSWORD_ENV"), cluster.Authenticator = gocql.PasswordAuthenticator{ Username: username, Password: password } cluster.Keyspace = "ks1" // connect to the cluster session, err := cluster.CreateSession() if err != nil { log.Fatal(err) } defer session.Close() 运行示例代码,确认结果是否正常。
  • 前提条件 已创建GeminiDB Cassandra实例,且运行状态正常。 已创建弹性云服务器,以Linux操作系统为例。 创建弹性云服务器,详情请参见《弹性云服务器快速入门》中购买弹性云服务器的内容。 根据已购弹性云服务器的CPU类型,选择下载并安装对应的Cassandra客户端。 弹性云服务器的CPU类型为x86时,请下载Cassandra客户端安装包。 弹性云服务器的CPU类型为鲲鹏时,请下载Cassandra客户端安装包。 使用SSL方式连接实例时,需要提前获取SSL证书,具体操作请参见下载SSL证书。
  • 步骤1:购买ECS 登录管理控制台,查看是否有弹性云服务器。 有Linux弹性云服务器,执行3。 无Linux弹性云服务器,执行2。 图1 ECS实例 购买弹性云服务器时,选择Linux操作系统,例如CentOS。 由于需要在ECS下载PostgreSQL客户端,因此需要为ECS绑定弹性公网IP(EIP)。 购买Linux弹性云服务器请参考《弹性云服务器快速入门》中“购买弹性云服务器”章节。 在ECS实例基本信息页,查看ECS实例的区域和VPC。 图2 ECS基本信息 在RDS for PostgreSQL实例基本信息页,查看RDS实例的区域和VPC。 图3 PostgreSQL基本信息