ศูนย์คู่มือ Ruk-Com PaaS

คู่มือการพัฒนา Deploy และดูแล Application บน Platform

RUK-COM PAAS / DATABASES

คู่มือ Java Connection สำหรับ Database

คู่มือนี้เรียบเรียงสำหรับ Ruk-Com PaaS หน้าจอและตัวเลือกอาจแตกต่างตามเวอร์ชันและสิทธิ์ของบัญชี

ตรวจสอบ Environment, Region, สิทธิ์บัญชี และสำรองค่าปัจจุบันก่อนดำเนินการกับระบบจริง

คู่มือภาษาไทย

คำสั่ง ชื่อเมนู Parameter และค่าตัวอย่างในกรอบ Code คงรูปแบบตามระบบเพื่อให้คัดลอกและตรวจสอบได้ถูกต้อง

MariaDB,MySQL, และPerconaเป็น Database โอเพ่นซอร์สที่ได้รับความนิยมอย่างสูงซึ่งนักพัฒนาทั่วโลกใช้ในคำแนะนำนี้เราจะแสดงวิธีเชื่อมต่อ Application Java ของคุณกับ DatabaseServer แบบสแตนด์อโลนและโซลูชันแบบ Cluster เหล่านี้

  1. ลงชื่อเข้าใช้บัญชี PaaS ของคุณและสร้าง EnvironmentกับMariaDB(หรือMySQL) ServerDatabase (มีอยู่ในSQLส่วนตัวช่วยสร้าง):
  • สำหรับ ServerDatabase แบบสแตนด์อโลน

Image 1: new Java environment with standalone database* สำหรับโซลูชันการจัดกลุ่มอัตโนมัติ

Image 2: new Java environment with database auto-cluster

เราได้เพิ่มด้วยTomcatNode เพื่อแสดงตัวอย่างการเชื่อมต่อ Database จาก Application Server

  1. ตรวจสอบกล่องจดหมายอีเมลของคุณ - ควรมีข้อความพร้อมรายละเอียดการดูแลระบบสำหรับ Server MariaDB (หรือ MySQL) ที่สร้างขึ้น

ในกรณีของ ClusterDatabaseจุดเริ่มต้นสำหรับการเชื่อมต่อเรียกว่ากLoad Balancer ProxySQL.

  1. สลับกลับไปที่ Dashboard แล้วคลิกเปิดใน Browserปุ่มสำหรับ Node MariaDB/MySQL ของคุณ

Image 3: MariaDB open in browserหากคุณมีโซลูชันแบบ Cluster ให้กดบนเปิดใน Browserถัดจาก Node Database หลัก (ทำเครื่องหมายเป็นม).

Image 4: MariaDB auto-cluster open in browserเข้าสู่ระบบแผงผู้ดูแลระบบที่เปิดโดยใช้ข้อมูลรับรองจากอีเมลที่กล่าวถึงข้างต้น

  1. ใช้ Database ที่มีอยู่ (เช่นทดสอบ) หรือสร้างอันใหม่

Image 5: MariaDB phpMyAdmin admin panel5. กลับไปที่ Dashboard แล้วคลิกการกำหนดค่าปุ่มถัดจาก Application Server (Tomcatในกรณีของเรา) เพื่อเข้าถึงConfiguration File Manager.

Image 6: application server config button6. นำทางไปยัง/opt/tomcat/tempโฟลเดอร์ให้สร้างใหม่mydb.cfgไฟล์.

สำหรับการเชื่อมต่อ Database แบบสแตนด์อโลนให้เพิ่มข้อมูลต่อไปนี้ในmydb.cfgไฟล์:

ชวา

host=jdbc:mysql://{host}/{db_name}
username={user}
password={password}
driver=com.mysql.jdbc.Driver

ข้อมูลที่จำเป็นทั้งหมดสามารถพบได้ในอีเมล Node MariaDB/MySQL:

  • {เจ้าภาพ}- เชื่อมโยงไปยัง Node DB ของคุณโดยไม่มีส่วน Protocol
  • {db_name}- ชื่อของ Database (ทดสอบในกรณีของเรา)
  • {ผู้ใช้}และ{รหัสผ่าน}- ข้อมูลรับรองผู้ดูแลระบบ Database (สำหรับการใช้งานจริงแนะนำให้สร้างบัญชีเฉพาะที่มีสิทธิ์ที่เหมาะสม)

Image 7: MySQL connection detailsสำหรับการเชื่อมต่อกับ Cluster จะมีการใช้ตัว Load Balancer ProxySQL เป็นจุดเริ่มต้นและ Database แต่ละประเภทจะมีตัวเชื่อมต่อของตัวเองดังนั้นให้เพิ่มข้อมูลต่อไปนี้ลงในmydb.cfgไฟล์:

สำหรับ MariaDB:

ชวา

host=jdbc:mariadb://{hostname}/{db_name}?usePipelineAuth=false
username={user}
password={password}
driver=org.mariadb.jdbc.Driver
  • {ชื่อ Host}- ลิงก์ไปยัง Load BalancerCluster DB ของคุณ (เช่น Layer ProxySQL)
  • {db_name}- ชื่อของ Database เราเลือกแล้วทดสอบในขั้นตอนแรก
  • ใช้ PipelineAuth- หากเปิดใช้งานการสืบค้นที่แตกต่างกันจะดำเนินการโดยใช้ไปป์ไลน์ (การสืบค้นทั้งหมดจะถูกส่งจากนั้นจึงอ่านผลลัพธ์ทั้งหมดเท่านั้น) ทำให้สามารถสร้างการเชื่อมต่อได้เร็วขึ้นควรตั้งค่านี้เป็นเท็จเนื่องจากการใช้งานดังกล่าวไม่สามารถใช้ได้กับ ProxySQL ที่อยู่ด้านหน้า Cluster
  • {ผู้ใช้}และ{รหัสผ่าน}- ข้อมูลรับรอง Database ที่ได้รับในอีเมล

Image 8: MariaDB auto-cluster connection detailsสำหรับ MySQL:

ชวา

host=jdbc:mysql://{host}/{db_name}
username={user}
password={password}
driver=com.mysql.jdbc.Driver
  • {ชื่อ Host}- ลิงก์ไปยัง Load BalancerCluster DB ของคุณ (เช่น Layer ProxySQL)
  • {db_name}- ชื่อของ Database (ทดสอบในกรณีของเรา)
  • {ผู้ใช้}และ{รหัสผ่าน}- ข้อมูลรับรองผู้ดูแลระบบ Database (สำหรับการใช้งานจริงแนะนำให้สร้างบัญชีเฉพาะที่มีสิทธิ์ที่เหมาะสม)

ด้วยวิธีนี้การตั้งค่าการเชื่อมต่อทั้งหมดจะถูกบันทึกไว้ในไฟล์เดียวซึ่งต่อมาจะถูกอ่านโดย Application

  1. สำหรับการ Deploy และการเชื่อมต่อเพิ่มเติมเราจะใช้ Application ตัวอย่างต่อไปนี้:

ชวา

package connection;

import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Properties;
import java.util.logging.Level;
import java.util.logging.Logger;

public class DbManager {

    public String date = new SimpleDateFormat("dd-MM-yyyy-HH-mm").format(new Date());
    private final String createTable = "CREATE TABLE `" + date + "` (id INT, data VARCHAR(100));";
    private static final int LoginTimeout = 10;

    public DbManager() {
    }

    public Connection createConnection() throws IOException, ClassNotFoundException, SQLException {
        Properties prop = new Properties();
        System.out.println("\n\n=======================\nJDBC Connector Test " + date);
        System.out.println("User home directory: " + System.getProperty("user.home"));
        String host;
        String username;
        String password;
        String driver;
        try {
            prop.load(new java.io.FileInputStream(System.getProperty("user.home") + "/mydb.cfg"));

            host = prop.getProperty("host").toString();
            username = prop.getProperty("username").toString();
            password = prop.getProperty("password").toString();
            driver = prop.getProperty("driver").toString();
        } catch (IOException e) {
            System.out.println("Unable to find mydb.cfg in " + System.getProperty("user.home") + "\n Please make sure that configuration file created in this folder.")

            host = "Unknown HOST";
            username = "Unknown USER";
            password = "Unknown PASSWORD";
            driver = "Unknown DRIVER";
        }

        System.out.println("host: " + host + "\nusername: " + username + "\npassword: " + password + "\ndriver: " + driver);

        Class.forName(driver);
        System.out.println("--------------------------");
        System.out.println("DRIVER: " + driver);
        System.out.println("Set Login Timeout: " + LoginTimeout);
        DriverManager.setLoginTimeout(LoginTimeout);
        Connection connection = DriverManager.getConnection(host, username, password);
        System.out.println("CONNECTION: " + connection);

        return connection;
    }

    public String runSqlStatement() {
        String result = "";
        try {
            Statement statement = createConnection().createStatement();
            System.out.println("SQL query: " + createTable);
            statement.execute(createTable);
        } catch (IOException | ClassNotFoundException ex) {
            Logger.getLogger(DbManager.class.getName()).log(Level.SEVERE, null, ex);
            System.out.println("Exception occurred: " + ex);
            result = ex.getMessage();
        } catch (SQLException ex) {
            ex.printStackTrace();
            result = ex.getMessage();
        }
        return result;
    }
}
  1. DeployApplication ตัวอย่างของเราไปยัง Server Tomcat ของคุณโดยใช้ลิงก์ต่อไปนี้:

https://node.example.ruk-com.cloud/public.php?service=files&t=b2c6e4e01d487dfd5af953ba31dac848&download

Image 9: Java deploy from URLImage 10: Java application deployment dialog

หมายเหตุ:

  • Application ตัวอย่างของเรามีไฟล์ตัวเชื่อมต่อ jdbcสำหรับMariaDB/MySQLการเข้าถึง Database อย่างไรก็ตามในการเชื่อมต่อโปรเจ็กต์ของคุณเองคุณจะต้องอัปโหลดโปรเจ็กต์เหล่านั้นไปยังwebapps/{app_context}/WEB-INF/libโฟลเดอร์บน Application Server ของคุณ
  • อย่าลืม RestartApplication Server ของคุณเพื่อสมัครmydb.cfgเปลี่ยนแปลงโดยการกดRestart Nodeปุ่ม.

Image 11: restart application server nodes

  1. เมื่อ Deploy เสร็จแล้วคลิกเปิดใน Browserในหน้าต่างป๊อปอัปหรือถัดจาก Application Server ของคุณ

Image 12: successful deployment dashboard notification10. ในแท็บ Browser ที่เปิดอยู่ให้คลิกที่สร้างตารางทดสอบใน Database ของคุณปุ่ม.

Image 13: example application of the server connection to database11. ตอนนี้เพื่อให้แน่ใจว่าทุกอย่างทำงานได้ดีให้กลับไปที่phpMyAdminแผงและนำทางไปยังทดสอบDatabase

Image 14: new table added to databaseคุณจะเห็นว่าตารางที่สร้างขึ้นใหม่ปรากฏขึ้นพร้อมชื่อ{วันที่-เวลาที่สร้าง}นั่นหมายความว่าสามารถเข้าถึงและแก้ไข Database จาก Application Java ของคุณได้สำเร็จมันง่ายมาก!

มีประโยชน์ที่จะรู้

Platform นี้ยังช่วยให้คุณขยายฟังก์ชันการทำงานของ Server MariaDB/MySQL ของคุณได้โดยทำตามคำแนะนำที่เหมาะสมในเอกสารของเรา:

  • ตั้งค่าประเภทการจำลอง Database ที่ต้องการด้วยคุณสมบัติ Auto-Clustering ในตัวเพื่อให้ได้รับประสิทธิภาพ Database ที่เพิ่มขึ้นและการป้องกันข้อมูลสูญหาย
  • ปรับการกำหนดการสำรองข้อมูลเพื่อรับรองความปลอดภัยของข้อมูลภายใน Database ของคุณในกรณีที่ Server ล้มเหลวโดยไม่คาดคิด
  • ดูการเข้าถึงระยะไกลคำแนะนำและเรียนรู้วิธีการเข้าถึง Database ของคุณจากระยะไกลผ่าน Client MySQL บนเดสก์ท็อปที่ต้องการ
  • ใช้การนำเข้า/ส่งออกไฟล์ดัมพ์คำแนะนำเพื่อค้นหาวิธีสำรองและกู้คืนข้อมูลของคุณจากดัมพ์ที่สร้างไว้ก่อนหน้านี้ด้วยตนเอง
  • ดูสตริงการเชื่อมต่อ Databaseเพื่อรับข้อมูลเพิ่มเติมวิธีกำหนดค่าการเชื่อมต่อกับ Database ประเภทต่างๆ

วิดีโอสอนเกี่ยวกับการเชื่อมต่อ MySQL กับ Application Java

คุณสามารถใช้เวอร์ชันวิดีโอสอนเพื่อดูวิธีสร้าง Environment ใหม่กำหนดค่า ServerDatabase MySQL เชื่อมต่อกับ Server จาก Application ของคุณและสุดท้าย Deploy Application กับ Platform

วิดีโอ 3