ลดความยุ่งยากในการใช้คลาวด์ พูดคุยกับเจ้าหน้าที่

Home สร้างฐานข้อมูล MySQL บน DirectAdmin

สร้างฐานข้อมูล MySQL บน DirectAdmin

เว็บไซต์ที่สร้างด้วย WordPress, Joomla, Laravel หรือระบบร้านค้าออนไลน์ส่วนใหญ่ต้องใช้ฐานข้อมูล MySQL หรือ MariaDB ในการเก็บเนื้อหา ผู้ใช้ และคำสั่งซื้อ บน DirectAdmin คุณสร้างฐานข้อมูลพร้อมผู้ใช้ฐานข้อมูลได้ในขั้นตอนเดียว แล้วนำชื่อฐานข้อมูล ชื่อผู้ใช้ และรหัสผ่านไปใส่ในไฟล์ตั้งค่าของเว็บไซต์

บทความนี้อธิบายการสร้างฐานข้อมูล การเพิ่มผู้ใช้ให้ฐานข้อมูลเดิม การเปิด phpMyAdmin และการนำเข้าไฟล์ .sql โดยอ้างอิงหน้าจอ DirectAdmin แบบ Evolution skin เซิร์ฟเวอร์ DirectAdmin อาจติดตั้ง MySQL หรือ MariaDB ก็ได้ ขั้นตอนในหน้า Control Panel เหมือนกัน

สิ่งที่ต้องเตรียม

  • บัญชี DirectAdmin ระดับ User และแพ็กเกจที่ยังเหลือโควตาจำนวนฐานข้อมูล
  • ชื่อที่ต้องการตั้งให้ฐานข้อมูล ใช้ตัวอักษรภาษาอังกฤษพิมพ์เล็ก ตัวเลข และขีดล่างเท่านั้น
  • ไฟล์ .sql หากต้องการนำเข้าข้อมูลจากเว็บเดิม

ขั้นตอนที่ 1: สร้างฐานข้อมูลและผู้ใช้

  1. ล็อกอิน DirectAdmin แล้วไปที่หมวด Account Manager คลิก MySQL Management
  2. คลิก Create new Database
  3. กรอกข้อมูล
    • Database Name: เช่น shop
    • Database Username: เช่น shop หรือติ๊ก Same as database name เพื่อใช้ชื่อเดียวกับฐานข้อมูล
    • Password: กดปุ่มสุ่มรหัสผ่านเพื่อได้รหัสที่แข็งแรง แล้วจดเก็บไว้
  4. กด Create Database

DirectAdmin จะเติมชื่อบัญชีผู้ใช้ของคุณพร้อมขีดล่างไว้ข้างหน้าชื่อทั้งสองโดยอัตโนมัติ ตัวอย่างเช่น ถ้าชื่อบัญชี DirectAdmin คือ acme ชื่อที่ได้จริงจะเป็น

รายการค่าที่ได้จริง
Databaseacme_shop
Usernameacme_shop
Hostlocalhost
Passwordรหัสที่ตั้งไว้

หน้าสรุปหลังสร้างจะแสดงค่าเหล่านี้ ให้คัดลอกเก็บไว้ทันที เพราะ DirectAdmin จะไม่แสดงรหัสผ่านให้ดูซ้ำภายหลัง

หมายเหตุ: ชื่อที่นับรวมคำนำหน้าแล้วมีขีดจำกัดความยาว MySQL 8 รับชื่อผู้ใช้ได้ไม่เกิน 32 ตัวอักษร และชื่อฐานข้อมูลไม่เกิน 64 ตัวอักษร จึงควรตั้งชื่อให้สั้นและสื่อความหมาย หากสร้างไม่ผ่านให้ลองตั้งชื่อให้สั้นลง

ขั้นตอนที่ 2: ใส่ค่าเชื่อมต่อในเว็บไซต์

นำค่าจากขั้นตอนที่ 1 ไปใส่ในไฟล์ตั้งค่าของเว็บไซต์ ตัวอย่างสำหรับ WordPress ในไฟล์ wp-config.php

define( 'DB_NAME', 'acme_shop' );
define( 'DB_USER', 'acme_shop' );
define( 'DB_PASSWORD', 'รหัสผ่านที่ตั้งไว้' );
define( 'DB_HOST', 'localhost' );

สำหรับ Laravel ในไฟล์ .env

DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=acme_shop
DB_USERNAME=acme_shop
DB_PASSWORD=รหัสผ่านที่ตั้งไว้

ใช้ localhost เป็น Host เสมอเมื่อเว็บไซต์กับฐานข้อมูลอยู่บนเซิร์ฟเวอร์เดียวกัน ซึ่งเป็นกรณีปกติของ Hosting ที่ใช้ DirectAdmin

ขั้นตอนที่ 3: เพิ่มผู้ใช้หรือเปลี่ยนรหัสผ่านภายหลัง

  1. ไปที่ MySQL Management แล้วคลิกชื่อฐานข้อมูล
  2. ในหน้ารายละเอียด จะเห็นรายชื่อผู้ใช้ที่มีสิทธิ์ในฐานข้อมูลนี้ คลิก Create new user เพื่อสร้างผู้ใช้ใหม่ หรือเลือก Add existing user เพื่อให้ผู้ใช้ที่มีอยู่แล้วเข้าถึงฐานข้อมูลนี้ด้วย (ชื่อปุ่มอาจต่างกันตามเวอร์ชัน)
  3. หากต้องการเปลี่ยนรหัสผ่าน ให้เลือกผู้ใช้แล้วใช้เมนู Change Password

หลังเปลี่ยนรหัสผ่าน ต้องแก้ค่าในไฟล์ตั้งค่าของเว็บไซต์ให้ตรงกันด้วย มิฉะนั้นเว็บจะขึ้น Error เชื่อมต่อฐานข้อมูลไม่ได้

ขั้นตอนที่ 4: จัดการข้อมูลด้วย phpMyAdmin และนำเข้าไฟล์ .sql

  1. ในหน้า MySQL Management คลิกลิงก์ phpMyAdmin (อยู่มุมบนของหน้า หรือในเมนู Extra Features ขึ้นอยู่กับการตั้งค่าเซิร์ฟเวอร์)
  2. ในเซิร์ฟเวอร์ส่วนใหญ่ DirectAdmin จะล็อกอินให้อัตโนมัติ หากถูกถามชื่อผู้ใช้ ให้ใช้ชื่อผู้ใช้และรหัสผ่านของฐานข้อมูล (เช่น acme_shop)
  3. คลิกชื่อฐานข้อมูลในแถบซ้าย แล้วไปที่แท็บ Import
  4. กด Choose File เลือกไฟล์ .sql หรือ .sql.gz แล้วกด Import (บางรุ่นเขียนว่า Go)

หากไฟล์ใหญ่เกินขีดจำกัดการอัปโหลดของ phpMyAdmin DirectAdmin ยังมีปุ่ม Upload backup หรือ Restore ในหน้ารายละเอียดของฐานข้อมูล ซึ่งรับไฟล์ .sql หรือ .gz ได้โดยตรง หากคุณมีสิทธิ์ SSH สามารถนำเข้าด้วยคำสั่งได้เช่นกัน

mysql -u acme_shop -p acme_shop < backup.sql

คำสั่งนี้จะถามรหัสผ่าน แล้วนำเข้าโดยไม่แสดงผลอะไรหากสำเร็จ รายละเอียดการสำรองและกู้คืนดูได้ที่ สำรองและกู้คืนฐานข้อมูล MySQL/MariaDB ด้วย mysqldump

หมายเหตุ: การนำเข้าไฟล์ .sql ที่มีคำสั่ง DROP TABLE จะเขียนทับตารางชื่อเดียวกันที่มีอยู่ ก่อนนำเข้าข้อมูลลงฐานข้อมูลที่ใช้งานจริง ให้ Export สำรองไว้ก่อนเสมอ ผ่านแท็บ Export ของ phpMyAdmin

ขั้นตอนที่ 5 (ถ้าจำเป็น): อนุญาตให้เชื่อมต่อจากเครื่องภายนอก

โดยค่าเริ่มต้น ผู้ใช้ฐานข้อมูลเชื่อมต่อได้จาก localhost เท่านั้น หากต้องการเชื่อมต่อจากโปรแกรมบนคอมพิวเตอร์ของคุณ เช่น DBeaver หรือ MySQL Workbench ให้เข้าไปที่ชื่อฐานข้อมูลในหน้า MySQL Management แล้วเพิ่ม IP สาธารณะของคุณในส่วน Access Hosts ให้เพิ่มเฉพาะ IP ที่ต้องใช้จริง ไม่ควรใส่ % ซึ่งหมายถึงทุก IP

นอกจากนี้ Port 3306 ต้องเปิดใน Firewall ของเซิร์ฟเวอร์สำหรับ IP นั้น หากเซิร์ฟเวอร์มี Security Group หรือ Firewall ภายนอกจากฝั่งผู้ให้บริการ ให้เปิดพอร์ตนั้นเพิ่มด้วย บน Shared Hosting บางแห่งอาจไม่อนุญาตการเชื่อมต่อจากภายนอกเลย แนวทางด้านความปลอดภัยเพิ่มเติมดูที่ เปิดให้เชื่อมต่อ MySQL/MariaDB จากภายนอกอย่างปลอดภัย

ตรวจสอบผลลัพธ์

  • ในหน้า MySQL Management จะเห็นฐานข้อมูลใหม่ในรายการ พร้อมขนาดและจำนวนผู้ใช้
  • เปิด phpMyAdmin แล้วเห็นฐานข้อมูลในแถบซ้าย หากนำเข้าข้อมูลแล้วจะเห็นรายชื่อตาราง
  • เปิดเว็บไซต์แล้วไม่พบข้อความ Error เกี่ยวกับการเชื่อมต่อฐานข้อมูล

ปัญหาที่พบบ่อย

เว็บขึ้น Error establishing a database connection หรือ Access denied

ตรวจว่าใส่ชื่อฐานข้อมูลและชื่อผู้ใช้พร้อมคำนำหน้า เช่น acme_shop ไม่ใช่ shop และรหัสผ่านไม่มีช่องว่างเกินมา หากไม่แน่ใจให้เปลี่ยนรหัสผ่านใหม่ในขั้นตอนที่ 3 แล้วแก้ไฟล์ตั้งค่าให้ตรง ดูเพิ่มเติมที่ แก้ปัญหา Error Establishing a Database Connection ใน WordPress

นำเข้าไฟล์แล้วขึ้น #1044 Access denied for user ... to database

ไฟล์ .sql มีคำสั่ง CREATE DATABASE หรือ USE ชื่อฐานข้อมูลเดิม ซึ่งผู้ใช้ของคุณไม่มีสิทธิ์ ให้เปิดไฟล์ด้วยโปรแกรมแก้ไขข้อความแล้วลบบรรทัดเหล่านั้นออก แล้วนำเข้าใหม่โดยเลือกฐานข้อมูลปลายทางไว้ก่อน

นำเข้าแล้วขึ้น Unknown collation: utf8mb4_0900_ai_ci

ไฟล์ถูก Export มาจาก MySQL 8 แต่เซิร์ฟเวอร์ปลายทางใช้ MariaDB รุ่นที่ยังไม่รู้จัก collation นี้ (MariaDB เพิ่งรองรับชื่อนี้ในรุ่น 11.4.5 ขึ้นไป) ให้แทนที่ utf8mb4_0900_ai_ci ในไฟล์ด้วย utf8mb4_unicode_ci แล้วนำเข้าใหม่

สร้างฐานข้อมูลไม่ได้ ขึ้นว่าเกินจำนวน

แพ็กเกจของคุณใช้ฐานข้อมูลครบตามโควตาแล้ว ให้ลบฐานข้อมูลที่ไม่ใช้ (สำรองก่อนลบ) หรือติดต่อผู้ให้บริการเพื่อปรับแพ็กเกจ

หากยังเชื่อมต่อฐานข้อมูลไม่ได้ ติดต่อทีมงาน THAI DATA CLOUD ได้ที่ https://thaidata.cloud/contact/ พร้อมแจ้งชื่อฐานข้อมูลและข้อความ Error ที่พบ

ผู้ให้บริการคลาวด์ไทย
เพื่อธุรกิจของคนไทย

"มุ่งมั่น" และ "มั่นคง"
พร้อมรับมือทุกการเติบโต
Trust Cloud
คลาว์ที่ปลอดภัย
คือรากฐานที่มั่นคง
cloud security