คู่มือ Java Connection สำหรับ ฐานข้อมูล
คู่มือนี้เรียบเรียงสำหรับ Ruk-Com PaaS หน้าจอและตัวเลือกอาจแตกต่างตามเวอร์ชันและสิทธิ์ของบัญชี
ตรวจสอบ Environment, Region, สิทธิ์บัญชี และสำรองค่าปัจจุบันก่อนดำเนินการกับระบบจริง
คำสั่ง ชื่อเมนู พารามิเตอร์ และค่าตัวอย่างในกรอบ Code คงรูปแบบตามระบบเพื่อให้คัดลอกและตรวจสอบได้ถูกต้อง
MariaDB,MySQL, และPerconaเป็นฐานข้อมูลโอเพ่นซอร์สที่ได้รับความนิยมอย่างสูงซึ่งนักพัฒนาทั่วโลกใช้ในคำแนะนำนี้เราจะแสดงวิธีเชื่อมต่อแอปพลิเคชัน Java ของคุณกับฐานข้อมูลเซิร์ฟเวอร์แบบสแตนด์อโลนและโซลูชันแบบคลัสเตอร์เหล่านี้
- ลงชื่อเข้าใช้บัญชี PaaS ของคุณและสร้าง EnvironmentกับMariaDB(หรือMySQL) เซิร์ฟเวอร์ฐานข้อมูล (มีอยู่ในSQLส่วนตัวช่วยสร้าง):
- สำหรับเซิร์ฟเวอร์ฐานข้อมูลแบบสแตนด์อโลน
* สำหรับโซลูชันการจัดกลุ่มอัตโนมัติ
เราได้เพิ่มด้วยTomcatNode เพื่อแสดงตัวอย่างการเชื่อมต่อฐานข้อมูลจากแอปพลิเคชันเซิร์ฟเวอร์
- ตรวจสอบกล่องจดหมายอีเมลของคุณ - ควรมีข้อความพร้อมรายละเอียดการดูแลระบบสำหรับเซิร์ฟเวอร์ MariaDB (หรือ MySQL) ที่สร้างขึ้น
ในกรณีของคลัสเตอร์ฐานข้อมูลจุดเริ่มต้นสำหรับการเชื่อมต่อเรียกว่ากตัวจัดสรรภาระงาน ProxySQL.
- สลับกลับไปที่แดชบอร์ดแล้วคลิกเปิดในเบราว์เซอร์ปุ่มสำหรับ Node MariaDB/MySQL ของคุณ
หากคุณมีโซลูชันแบบคลัสเตอร์ให้กดบนเปิดในเบราว์เซอร์ถัดจาก Node ฐานข้อมูลหลัก (ทำเครื่องหมายเป็นม).
เข้าสู่ระบบแผงผู้ดูแลระบบที่เปิดโดยใช้ข้อมูลรับรองจากอีเมลที่กล่าวถึงข้างต้น
- ใช้ฐานข้อมูลที่มีอยู่ (เช่นทดสอบ) หรือสร้างอันใหม่
5. กลับไปที่แดชบอร์ดแล้วคลิกการกำหนดค่าปุ่มถัดจากแอปพลิเคชันเซิร์ฟเวอร์ (Tomcatในกรณีของเรา) เพื่อเข้าถึงตัวจัดการไฟล์การกำหนดค่า.
6. นำทางไปยัง/opt/tomcat/tempโฟลเดอร์ให้สร้างใหม่mydb.cfgไฟล์.
สำหรับการเชื่อมต่อฐานข้อมูลแบบสแตนด์อโลนให้เพิ่มข้อมูลต่อไปนี้ในmydb.cfgไฟล์:
ชวา
host=jdbc:mysql://{host}/{db_name}
username={user}
password={password}
driver=com.mysql.jdbc.Driver
ข้อมูลที่จำเป็นทั้งหมดสามารถพบได้ในอีเมล Node MariaDB/MySQL:
- {เจ้าภาพ}- เชื่อมโยงไปยัง Node DB ของคุณโดยไม่มีส่วนโปรโตคอล
- {db_name}- ชื่อของฐานข้อมูล (ทดสอบในกรณีของเรา)
- {ผู้ใช้}และ{รหัสผ่าน}- ข้อมูลรับรองผู้ดูแลระบบฐานข้อมูล (สำหรับการใช้งานจริงแนะนำให้สร้างบัญชีเฉพาะที่มีสิทธิ์ที่เหมาะสม)
สำหรับการเชื่อมต่อกับคลัสเตอร์จะมีการใช้ตัวโหลดบาลานเซอร์ ProxySQL เป็นจุดเริ่มต้นและฐานข้อมูลแต่ละประเภทจะมีตัวเชื่อมต่อของตัวเองดังนั้นให้เพิ่มข้อมูลต่อไปนี้ลงในmydb.cfgไฟล์:
สำหรับ MariaDB:
ชวา
host=jdbc:mariadb://{hostname}/{db_name}?usePipelineAuth=false
username={user}
password={password}
driver=org.mariadb.jdbc.Driver
- {ชื่อโฮสต์}- ลิงก์ไปยังโหลดบาลานเซอร์คลัสเตอร์ DB ของคุณ (เช่นเลเยอร์ ProxySQL)
- {db_name}- ชื่อของฐานข้อมูลเราเลือกแล้วทดสอบในขั้นตอนแรก
- ใช้ PipelineAuth- หากเปิดใช้งานการสืบค้นที่แตกต่างกันจะดำเนินการโดยใช้ไปป์ไลน์ (การสืบค้นทั้งหมดจะถูกส่งจากนั้นจึงอ่านผลลัพธ์ทั้งหมดเท่านั้น) ทำให้สามารถสร้างการเชื่อมต่อได้เร็วขึ้นควรตั้งค่านี้เป็นเท็จเนื่องจากการใช้งานดังกล่าวไม่สามารถใช้ได้กับ ProxySQL ที่อยู่ด้านหน้าคลัสเตอร์
- {ผู้ใช้}และ{รหัสผ่าน}- ข้อมูลรับรองฐานข้อมูลที่ได้รับในอีเมล
ชวา
host=jdbc:mysql://{host}/{db_name}
username={user}
password={password}
driver=com.mysql.jdbc.Driver
- {ชื่อโฮสต์}- ลิงก์ไปยังโหลดบาลานเซอร์คลัสเตอร์ DB ของคุณ (เช่นเลเยอร์ ProxySQL)
- {db_name}- ชื่อของฐานข้อมูล (ทดสอบในกรณีของเรา)
- {ผู้ใช้}และ{รหัสผ่าน}- ข้อมูลรับรองผู้ดูแลระบบฐานข้อมูล (สำหรับการใช้งานจริงแนะนำให้สร้างบัญชีเฉพาะที่มีสิทธิ์ที่เหมาะสม)
ด้วยวิธีนี้การตั้งค่าการเชื่อมต่อทั้งหมดจะถูกบันทึกไว้ในไฟล์เดียวซึ่งต่อมาจะถูกอ่านโดยแอปพลิเคชัน
- สำหรับการ Deploy และการเชื่อมต่อเพิ่มเติมเราจะใช้แอปพลิเคชันตัวอย่างต่อไปนี้:
ชวา
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;
}
}
- ปรับใช้แอปพลิเคชันตัวอย่างของเราไปยังเซิร์ฟเวอร์ Tomcat ของคุณโดยใช้ลิงก์ต่อไปนี้:
https://node.example.ruk-com.cloud/public.php?service=files&t=b2c6e4e01d487dfd5af953ba31dac848&download
หมายเหตุ:
- แอปพลิเคชันตัวอย่างของเรามีไฟล์ตัวเชื่อมต่อ jdbcสำหรับMariaDB/MySQLการเข้าถึงฐานข้อมูลอย่างไรก็ตามในการเชื่อมต่อโปรเจ็กต์ของคุณเองคุณจะต้องอัปโหลดโปรเจ็กต์เหล่านั้นไปยังwebapps/{app_context}/WEB-INF/libโฟลเดอร์บนแอปพลิเคชันเซิร์ฟเวอร์ของคุณ
- อย่าลืมรีสตาร์ทเซิร์ฟเวอร์แอปพลิเคชันของคุณเพื่อสมัครmydb.cfgเปลี่ยนแปลงโดยการกดรีสตาร์ท Nodeปุ่ม.
- เมื่อปรับใช้เสร็จแล้วคลิกเปิดในเบราว์เซอร์ในหน้าต่างป๊อปอัปหรือถัดจากเซิร์ฟเวอร์แอปพลิเคชันของคุณ
10. ในแท็บเบราว์เซอร์ที่เปิดอยู่ให้คลิกที่สร้างตารางทดสอบในฐานข้อมูลของคุณปุ่ม.
11. ตอนนี้เพื่อให้แน่ใจว่าทุกอย่างทำงานได้ดีให้กลับไปที่phpMyAdminแผงและนำทางไปยังทดสอบฐานข้อมูล
คุณจะเห็นว่าตารางที่สร้างขึ้นใหม่ปรากฏขึ้นพร้อมชื่อ{วันที่-เวลาที่สร้าง}นั่นหมายความว่าสามารถเข้าถึงและแก้ไขฐานข้อมูลจากแอปพลิเคชัน Java ของคุณได้สำเร็จมันง่ายมาก!
มีประโยชน์ที่จะรู้
แพลตฟอร์มนี้ยังช่วยให้คุณขยายฟังก์ชันการทำงานของเซิร์ฟเวอร์ MariaDB/MySQL ของคุณได้โดยทำตามคำแนะนำที่เหมาะสมในเอกสารของเรา:
- ตั้งค่าประเภทการจำลองฐานข้อมูลที่ต้องการด้วยคุณสมบัติ Auto-Clustering ในตัวเพื่อให้ได้รับประสิทธิภาพฐานข้อมูลที่เพิ่มขึ้นและการป้องกันข้อมูลสูญหาย
- ปรับการกำหนดการสำรองข้อมูลเพื่อรับรองความปลอดภัยของข้อมูลภายในฐานข้อมูลของคุณในกรณีที่เซิร์ฟเวอร์ล้มเหลวโดยไม่คาดคิด
- ดูการเข้าถึงระยะไกลคำแนะนำและเรียนรู้วิธีการเข้าถึงฐานข้อมูลของคุณจากระยะไกลผ่านไคลเอนต์ MySQL บนเดสก์ท็อปที่ต้องการ
- ใช้การนำเข้า/ส่งออกไฟล์ดัมพ์คำแนะนำเพื่อค้นหาวิธีสำรองและกู้คืนข้อมูลของคุณจากดัมพ์ที่สร้างไว้ก่อนหน้านี้ด้วยตนเอง
- ดูสตริงการเชื่อมต่อฐานข้อมูลเพื่อรับข้อมูลเพิ่มเติมวิธีกำหนดค่าการเชื่อมต่อกับฐานข้อมูลประเภทต่างๆ
วิดีโอสอนเกี่ยวกับการเชื่อมต่อ MySQL กับแอปพลิเคชัน Java
คุณสามารถใช้เวอร์ชันวิดีโอสอนเพื่อดูวิธีสร้าง Environment ใหม่กำหนดค่าเซิร์ฟเวอร์ฐานข้อมูล MySQL เชื่อมต่อกับเซิร์ฟเวอร์จากแอปพลิเคชันของคุณและสุดท้ายปรับใช้แอปพลิเคชันกับแพลตฟอร์ม





