
ฐานข้อมูล MySQL คือหัวใจของเว็บไซต์ส่วนใหญ่ ไม่ว่าจะเป็น WordPress, WooCommerce, Joomla หรือระบบที่พัฒนาเอง DirectAdmin มีส่วน Databases ที่ช่วยให้คุณสร้างและจัดการ MySQL Database ได้อย่างง่ายดาย โดยไม่ต้องใช้คำสั่ง SQL โดยตรง
Databases Section ใน DirectAdmin คืออะไร
ส่วน Databases ใน DirectAdmin คือเครื่องมือจัดการฐานข้อมูล MySQL ที่มาพร้อมกับ Hosting แต่ละบัญชี คุณสามารถสร้าง Database ใหม่ สร้าง User พร้อมรหัสผ่าน กำหนดสิทธิ์การเข้าถึง และเชื่อมต่อ User เข้ากับ Database ได้ทั้งหมดผ่านหน้า Web Interface นอกจากนี้ยังมีลิงก์เชื่อมไปยัง phpMyAdmin สำหรับจัดการข้อมูลในระดับลึกอีกด้วย
ขั้นตอนสร้าง MySQL Database ใหม่
เริ่มต้นด้วยการเข้าสู่ระบบ DirectAdmin ของคุณ จากนั้นทำตามขั้นตอนดังนี้:
- ไปที่หมวด Advanced Features แล้วคลิก MySQL Management
- คลิกปุ่ม Create New Database
- กรอกชื่อ Database ที่ต้องการ เช่น
mydb(ระบบจะเพิ่ม prefix ของ account ให้อัตโนมัติ) - คลิก Create เพื่อสร้าง Database
หลังจากสร้าง Database แล้ว ชื่อจริงที่ได้จะเป็นรูปแบบ username_mydb ซึ่งเป็นชื่อที่ต้องใช้ในการตั้งค่าเชื่อมต่อฐานข้อมูลในโปรแกรมหรือ CMS ของคุณ
สร้าง Database User และตั้งรหัสผ่าน
หลังสร้าง Database แล้ว ให้สร้าง User สำหรับเชื่อมต่อ Database ดังนี้:
- ในหน้า MySQL Management คลิก Create New User
- กรอกชื่อ User ที่ต้องการ เช่น
user1 - กรอกรหัสผ่านที่ปลอดภัย หรือใช้ปุ่ม Generate เพื่อสร้างรหัสผ่านอัตโนมัติ
- คลิก Create
ชื่อ User ที่สร้างได้จะเป็นรูปแบบ username_user1 เช่นกัน ควรจดบันทึกรหัสผ่านไว้เพื่อใช้ในการตั้งค่าเว็บไซต์
กำหนด Privileges (ALL PRIVILEGES)
การกำหนด Privileges คือการระบุว่า User มีสิทธิ์ทำอะไรกับ Database บ้าง สำหรับเว็บไซต์ทั่วไปควรให้สิทธิ์ ALL PRIVILEGES เพื่อให้ทำงานได้สมบูรณ์:
- SELECT — อ่านข้อมูล
- INSERT — เพิ่มข้อมูล
- UPDATE — แก้ไขข้อมูล
- DELETE — ลบข้อมูล
- CREATE / DROP — สร้างหรือลบตาราง
- INDEX / ALTER — จัดการโครงสร้างตาราง
เชื่อม User กับ Database
หลังสร้าง Database และ User แล้ว ต้องเชื่อมทั้งสองเข้าหากันก่อนจึงจะใช้งานได้:
- ในหน้า MySQL Management คลิกที่ชื่อ Database ที่ต้องการ
- ในส่วน Add User to Database เลือก User จาก dropdown
- เลือก Privileges ที่ต้องการ หรือเลือก All Privileges
- คลิก Add เพื่อบันทึก
สำคัญ: ชื่อ Database และ User จะมี prefix เป็นชื่อ account โดยอัตโนมัติ เช่น หาก account ชื่อ mysite และสร้าง database ชื่อ wp ชื่อจริงที่ได้คือ mysite_wp ต้องใช้ชื่อนี้ในการตั้งค่าเชื่อมต่อฐานข้อมูล
วิธีเข้า phpMyAdmin จาก DirectAdmin
phpMyAdmin คือเครื่องมือจัดการ MySQL ผ่านเว็บบราวเซอร์ เข้าถึงได้จาก DirectAdmin โดยตรง:
- ไปที่หมวด Advanced Features คลิก MySQL Management
- คลิกไอคอน phpMyAdmin ข้างชื่อ Database ที่ต้องการ
- ระบบจะนำคุณไปยังหน้า phpMyAdmin โดยอัตโนมัติโดยไม่ต้องกรอก Username/Password
ใน phpMyAdmin คุณสามารถ Browse ข้อมูลในตาราง รันคำสั่ง SQL จัดการโครงสร้าง และ Import/Export ข้อมูลได้
Import/Export Database ผ่าน phpMyAdmin
การ Import Database
ใช้เมื่อต้องการนำเข้าข้อมูลหรือย้ายเว็บไซต์จากที่อื่น:
- เปิด phpMyAdmin แล้วเลือก Database ที่ต้องการ Import ในแผงซ้าย
- คลิกแท็บ Import ที่แถบเมนูด้านบน
- คลิก Choose File แล้วเลือกไฟล์ .sql หรือ .sql.gz
- คลิก Go เพื่อเริ่มนำเข้าข้อมูล
การ Export Database
ใช้เมื่อต้องการสำรองข้อมูลหรือย้ายข้อมูลไปที่อื่น:
- เลือก Database ในแผงซ้าย แล้วคลิกแท็บ Export
- เลือกรูปแบบ SQL และเลือก Quick สำหรับการ Export แบบง่าย
- คลิก Go ไฟล์ .sql จะถูก Download ลงเครื่อง
ประเภท Database ที่รองรับใน DirectAdmin
DirectAdmin รองรับการจัดการฐานข้อมูลผ่านระบบ MySQL และ MariaDB ซึ่งเป็นฐานข้อมูลที่นิยมใช้งานมากที่สุดในโลกของ Web Hosting โดย MariaDB เป็น fork ของ MySQL ที่พัฒนาต่อโดยชุมชนและผู้พัฒนา MySQL เดิม ทั้งสองตัวมีความเข้ากันได้กันเกือบ 100% ทำให้แอปพลิเคชันที่เขียนสำหรับ MySQL ทำงานได้บน MariaDB โดยไม่ต้องแก้ไขโค้ด
กฎการตั้งชื่อ Database (Prefix Naming)
DirectAdmin บังคับให้ชื่อ Database และ Database User มี prefix เป็นชื่อบัญชี Hosting ของคุณเสมอ เพื่อป้องกันความซ้ำซ้อนระหว่างบัญชีต่าง ๆ บนเซิร์ฟเวอร์เดียวกัน ตัวอย่างเช่น:
- ชื่อบัญชี Hosting:
myshop - สร้าง Database ชื่อ
wp→ ชื่อจริงคือmyshop_wp - สร้าง User ชื่อ
admin→ ชื่อจริงคือmyshop_admin
ต้องใช้ชื่อเต็ม (พร้อม prefix) ทุกครั้งที่ตั้งค่าเชื่อมต่อฐานข้อมูล เช่นใน wp-config.php, ไฟล์ .env หรือไฟล์ configuration อื่น ๆ การใส่ชื่อสั้น ๆ โดยไม่มี prefix จะทำให้เกิดข้อผิดพลาด "Database not found" ทันที
การสร้าง Database User และกำหนดสิทธิ์
การสร้าง Database User เป็นขั้นตอนที่แยกออกจากการสร้าง Database ใน DirectAdmin คุณสร้าง User ก่อนแล้วค่อยผูก User นั้นกับ Database ที่ต้องการ ซึ่งทำให้สามารถใช้ User เดียวกันกับหลาย Database ได้ หรือสร้าง User หลายคนที่มีสิทธิ์ต่างกันสำหรับ Database เดียวกันก็ได้
ALL PRIVILEGES คืออะไร
ALL PRIVILEGES คือการให้สิทธิ์ทุกอย่างที่มีใน MySQL/MariaDB ได้แก่ SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, EVENT, TRIGGER เหมาะสำหรับ Application เช่น WordPress, WooCommerce, Joomla, Drupal ที่ต้องการสิทธิ์ครบเพื่อติดตั้งและอัปเดตโครงสร้างฐานข้อมูลได้เอง
สิทธิ์เฉพาะ (Specific Grants)
สำหรับระบบที่ต้องการความปลอดภัยสูงกว่า เช่น ฐานข้อมูลที่ใช้แค่อ่านข้อมูล หรือ User สำหรับระบบ Reporting คุณอาจกำหนดเฉพาะสิทธิ์ที่จำเป็น:
- SELECT only — สำหรับ User ที่ต้องการแค่ดึงข้อมูล เช่น ระบบ Report หรือ Read Replica
- SELECT, INSERT, UPDATE, DELETE — สำหรับ Application ทั่วไปที่ไม่ต้องการแก้โครงสร้างตาราง
- ไม่ให้ DROP, ALTER — ป้องกันการลบตารางหรือแก้โครงสร้างโดยไม่ตั้งใจ
ข้อควรระวัง: WordPress และ CMS หลายตัวต้องการสิทธิ์ CREATE และ ALTER เพื่อรันการ Migrate ฐานข้อมูลเวลาอัปเดตเวอร์ชัน ถ้าให้สิทธิ์ไม่ครบอาจทำให้การอัปเดตล้มเหลวได้
การ Import/Export Database ผ่าน phpMyAdmin และ Command Line
นอกจากการ Import/Export ผ่าน phpMyAdmin ที่อธิบายไปแล้ว ยังมีอีกวิธีสำหรับ Database ขนาดใหญ่ที่ phpMyAdmin อาจ Timeout ได้
ข้อจำกัดของ phpMyAdmin
phpMyAdmin มีขีดจำกัดขนาดไฟล์ที่ Upload ได้ (โดยทั่วไปประมาณ 64MB–256MB ขึ้นอยู่กับการตั้งค่า PHP) และมี Timeout ของ PHP Script ด้วย Database ที่มีขนาดใหญ่กว่านั้น ควรใช้วิธีอื่น
Import/Export ผ่าน SSH Command Line
หากมีสิทธิ์เข้า SSH (มักมีใน VPS หรือ Server เต็มรูปแบบ) สามารถใช้คำสั่ง mysqldump ได้โดยตรง:
- Export:
mysqldump -u username_user -p username_dbname > backup.sql - Import:
mysql -u username_user -p username_dbname < backup.sql - แทนที่
username_userและusername_dbnameด้วยชื่อจริงที่มี prefix
Import ไฟล์ขนาดใหญ่ผ่าน phpMyAdmin
ถ้าไฟล์ใหญ่เกิน Limit ของ phpMyAdmin แต่ไม่มี SSH ลองวิธีเหล่านี้:
- บีบอัดไฟล์ SQL เป็น
.sql.gzก่อน Upload — phpMyAdmin รองรับการ Import ไฟล์ที่บีบอัดและมี Limit ที่ใหญ่กว่า - ติดต่อทีม AsiaGB เพื่อขอเพิ่ม
upload_max_filesizeและmax_execution_timeชั่วคราว - แบ่ง SQL ออกเป็นหลายไฟล์แล้ว Import ทีละไฟล์ตามลำดับ
การแก้ปัญหา Database Connection Error
Database Connection Error เป็นหนึ่งในข้อผิดพลาดที่พบบ่อยที่สุดเมื่อตั้งค่าเว็บไซต์ใหม่ โดยเฉพาะ WordPress ที่จะแสดงข้อความ "Error establishing a database connection" เมื่อเชื่อมต่อไม่ได้ สาเหตุหลักมี 4 ข้อ:
1. ชื่อ Database หรือ User ผิด
ตรวจสอบว่าใช้ชื่อเต็มพร้อม prefix เสมอ เช่น mysite_wpdb ไม่ใช่ wpdb เปิด DirectAdmin → MySQL Management เพื่อดูชื่อจริง
2. รหัสผ่านผิด
รหัสผ่านที่กรอกใน config ต้องตรงกับที่ตั้งไว้ใน DirectAdmin ทุกตัวอักษร รวมถึงตัวพิมพ์เล็ก-ใหญ่และอักขระพิเศษ ถ้าไม่แน่ใจให้ Reset รหัสผ่าน User ใน MySQL Management แล้วอัปเดตใน config ด้วย
3. ชื่อ Host ผิด
สำหรับ Hosting ทั่วไป ค่า Database Host ต้องเป็น localhost เสมอ ห้ามใส่ IP ของเซิร์ฟเวอร์หรือชื่อโดเมนลงในช่อง Host เพราะ MySQL บน Hosting จะ Listen เฉพาะ localhost connection
4. Max Connections เกิน Limit
หากเว็บไซต์มีผู้เข้าชมพร้อมกันจำนวนมาก อาจเกิน Limit การเชื่อมต่อพร้อมกันที่ MySQL อนุญาต ทำให้ Connection ใหม่ถูก Refuse ชั่วคราว แก้ไขโดยเพิ่ม Connection Pooling ในโปรแกรม หรือติดต่อทีม AsiaGB เพื่อตรวจสอบค่า max_connections บน Server
เริ่มต้นใช้งาน Hosting กับ AsiaGB
Hosting SSD พร้อม MySQL, phpMyAdmin, DirectAdmin และ SSL ฟรี เหมาะสำหรับเว็บไซต์ WordPress และระบบทุกประเภท
ดูแพ็กเกจ Hosting