步驟六:連接DRDS實例邏輯庫
更新時間 2024-11-19 20:43:36
最近更新時間: 2024-11-19 20:43:36
分享文章
本文介紹如何連接DRDS實例邏輯庫。
連接方式介紹
DRDS提供使用內網、公網兩種連接方式,詳見下表:
| 連接方式 | IP地址 | 使用場景 | 說明 |
|---|---|---|---|
| 內網連接 | 內網IP地址 | 系統默認提供內網IP地址。當部署應用的彈性云主機,與DRDS實例處于同一區域的同一VPC內時,建議使用內網IP連接彈性云主機與DRDS實例。 | 安全性較高,提升網絡連接的速度和DRDS實例的穩定性。推薦使用內網連接。 |
| 公網連接 | 彈性公網IP | 不能通過內網IP地址訪問DRDS實例時,使用公網訪問。建議單獨綁定彈性公網IP,實現彈性云主機(或公網主機)與DRDS實例間的連接。 | 安全性較低。為了獲得更快的傳輸速率和更高的安全性,建議您將應用遷移到與您的DRDS實例在同一VPC內,使用內網連接。 |
前提條件
- 連接前需確保已成功配置DRDS實例。
- 彈性云主機上已安裝MySQL客戶端或程序已配置好MySQL連接驅動。
注意出于安全考慮,建議連接DRDS所使用的彈性云主機與DRDS實例處于相同的虛擬私有云(VPC)。
操作步驟
步驟一:獲取DRDS實例連接信息
- 在天翼云官網首頁的頂部菜單欄,選擇【產品?>?數據庫?>?關系型數據庫?>?分布式關系型數據庫】,進入分布式關系型數據庫產品頁面。然后單擊【管理控制臺】,進入【概覽】頁面。
- 在左側導航欄,選擇【DRDS?>?實例管理】,進入實例列表頁面。然后在頂部菜單欄,選擇區域和項目。
- 在實例列表中,找到目標實例,單擊【操作】列的【管理】,進入實例【基本信息】頁面。
- 查看實例的VIP和端口信息,即為連接地址。
- 在左側導航欄選擇【用戶管理】,獲取DRDS實例的用戶信息。
- 獲取到以上信息,即為可以連接DRDS實例的連接信息。
步驟二:連接實例
方式一:MySQL命令行連接DRDS邏輯庫
數據訪問層支持 MySQL 命令行方式訪問,登錄彈性云主機,打開命令行工具,輸入以下命令。
- mysql -h {DRDS_HOST} -P {DRDS_PORT} -u {DRDS_USER} [-D DRDS_DATABASE] -p [ --comments=true ]
參數說明
| 參數 | 說明 |
|---|---|
| DRDS_HOST | DRDS實例的IP地址。 |
| DRDS_PORT | DRDS實例的監聽端口。 |
| DRDS_USER | DRDS實例設置的用戶。 |
| DRDS_DATABASE | 計劃要連接的邏輯庫。 |
| comments=true | 使用HINT語法情況下,命令行方式訪問要加上參數 --comments=true 。 |
下面為Windows服務器命令行窗口中使用表中舉例參數后,MySQL命令連接服務器的回顯情況。
[root@9afe645c6f7a ~]# mysql -h127.0.0.1 -P8888 -uxxxx -p
Enter password: **********
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MySQL connection id is 208
Server version: 5.7.21-UDAL-DBPROXY-2.8.2_P3-2023-06-06T06:10:23Z DBProxy Server
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MySQL [(none)]>
方式二:JDBC驅動連接DRDS邏輯庫
本節以SQL查詢語句連接DRDS實例為例。
public static void main(String[] args) throws ClassNotFoundException {
//加載驅動程序
Class.forName("com.mysql.jdbc.Driver");
String userName = "xxxx";
String password = "xxxx";
String url = "xx.xx.xx.xx:xxxx";
String schema = "xxxx";
try(Connection conn = DriverManager.getConnection(String.format("jdbc:mysql://%s/%s?user=%s&password=%s&useUnicode=true&characterEncoding=utf-8",url, schema, userName, password));)
{
//查詢條件帶上分片鍵或切片索引鍵,否則語句將廣播執行
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("select now() as Systemtime");
rs.next();
String space = "";
for (int i = 1; i <= rs.getMetaData().getColumnCount(); i++) {
System.out.print(space + rs.getMetaData().getColumnName(i) +
" = " + rs.getString(i));
space = ", ";
}
} catch (Exception e) {
e.printStackTrace();
}
}