คู่มือ Java Connection สำหรับ Database
คู่มือนี้เรียบเรียงสำหรับ Ruk-Com PaaS หน้าจอและตัวเลือกอาจแตกต่างตามเวอร์ชันและสิทธิ์ของบัญชี
ตรวจสอบ Environment, Region, สิทธิ์บัญชี และสำรองค่าปัจจุบันก่อนดำเนินการกับระบบจริง
คำสั่ง ชื่อเมนู Parameter และค่าตัวอย่างในกรอบ Code คงรูปแบบตามระบบเพื่อให้คัดลอกและตรวจสอบได้ถูกต้อง
MariaDB,MySQL, และPerconaเป็น Database โอเพ่นซอร์สที่ได้รับความนิยมอย่างสูงซึ่งนักพัฒนาทั่วโลกใช้ในคำแนะนำนี้เราจะแสดงวิธีเชื่อมต่อ Application Java ของคุณกับ DatabaseServer แบบสแตนด์อโลนและโซลูชันแบบ Cluster เหล่านี้
- ลงชื่อเข้าใช้บัญชี PaaS ของคุณและสร้าง EnvironmentกับMariaDB(หรือMySQL) ServerDatabase (มีอยู่ในSQLส่วนตัวช่วยสร้าง):
- สำหรับ ServerDatabase แบบสแตนด์อโลน
* สำหรับโซลูชันการจัดกลุ่มอัตโนมัติ
เราได้เพิ่มด้วยTomcatNode เพื่อแสดงตัวอย่างการเชื่อมต่อ Database จาก Application Server
- ตรวจสอบกล่องจดหมายอีเมลของคุณ - ควรมีข้อความพร้อมรายละเอียดการดูแลระบบสำหรับ Server MariaDB (หรือ MySQL) ที่สร้างขึ้น
ในกรณีของ ClusterDatabaseจุดเริ่มต้นสำหรับการเชื่อมต่อเรียกว่ากLoad Balancer ProxySQL.
- สลับกลับไปที่ Dashboard แล้วคลิกเปิดใน Browserปุ่มสำหรับ Node MariaDB/MySQL ของคุณ
หากคุณมีโซลูชันแบบ Cluster ให้กดบนเปิดใน Browserถัดจาก Node Database หลัก (ทำเครื่องหมายเป็นม).
เข้าสู่ระบบแผงผู้ดูแลระบบที่เปิดโดยใช้ข้อมูลรับรองจากอีเมลที่กล่าวถึงข้างต้น
- ใช้ Database ที่มีอยู่ (เช่นทดสอบ) หรือสร้างอันใหม่
5. กลับไปที่ Dashboard แล้วคลิกการกำหนดค่าปุ่มถัดจาก Application Server (Tomcatในกรณีของเรา) เพื่อเข้าถึงConfiguration File Manager.
6. นำทางไปยัง/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 (สำหรับการใช้งานจริงแนะนำให้สร้างบัญชีเฉพาะที่มีสิทธิ์ที่เหมาะสม)
สำหรับการเชื่อมต่อกับ 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 ที่ได้รับในอีเมล
ชวา
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
- สำหรับการ 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;
}
}
- DeployApplication ตัวอย่างของเราไปยัง Server Tomcat ของคุณโดยใช้ลิงก์ต่อไปนี้:
https://node.example.ruk-com.cloud/public.php?service=files&t=b2c6e4e01d487dfd5af953ba31dac848&download
หมายเหตุ:
- Application ตัวอย่างของเรามีไฟล์ตัวเชื่อมต่อ jdbcสำหรับMariaDB/MySQLการเข้าถึง Database อย่างไรก็ตามในการเชื่อมต่อโปรเจ็กต์ของคุณเองคุณจะต้องอัปโหลดโปรเจ็กต์เหล่านั้นไปยังwebapps/{app_context}/WEB-INF/libโฟลเดอร์บน Application Server ของคุณ
- อย่าลืม RestartApplication Server ของคุณเพื่อสมัครmydb.cfgเปลี่ยนแปลงโดยการกดRestart Nodeปุ่ม.
- เมื่อ Deploy เสร็จแล้วคลิกเปิดใน Browserในหน้าต่างป๊อปอัปหรือถัดจาก Application Server ของคุณ
10. ในแท็บ Browser ที่เปิดอยู่ให้คลิกที่สร้างตารางทดสอบใน Database ของคุณปุ่ม.
11. ตอนนี้เพื่อให้แน่ใจว่าทุกอย่างทำงานได้ดีให้กลับไปที่phpMyAdminแผงและนำทางไปยังทดสอบ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





