본문으로 건너뛰기

เนื้อหาภาษาไทย / 태국어 콘텐츠

시스템 가이드 검수 완료된 콘텐츠

การตั้งค่า Database: สร้าง Database และ User

บทความนี้อธิบายขั้นตอนการตั้งค่า Database ใน MySQL สำหรับโปรเจกต์ PHP ซึ่งครอบคลุมการเข้าถึง MySQL Server ทั้งผ่าน Command Line และ phpMyAdmin รวมถึงวิธีการสร้า...

การตั้งค่า Database: สร้าง Database และ User

หลังจากที่เราได้ Deploy โปรเจกต์ PHP ของเราขึ้น Server แล้ว สิ่งที่ขาดไม่ได้เลยคือการตั้งค่า Database ให้พร้อมใช้งาน บทความนี้จะแนะนำวิธีการสร้าง Database และ User ใน MySQL อย่างละเอียด เพื่อให้โปรเจกต์ของเราสามารถเชื่อมต่อและใช้งาน Database ได้อย่างถูกต้อง

การเข้าถึง MySQL

ก่อนที่เราจะสามารถสร้าง Database และ User ได้ เราต้องเข้าถึง MySQL Server ก่อน โดยทั่วไปแล้ว เราสามารถเข้าถึง MySQL ได้ 2 วิธีหลักๆ คือ

  1. ผ่าน Command Line (SSH): วิธีนี้เป็นวิธีที่นิยมใช้กันมากที่สุด เพราะมีความยืดหยุ่นและสามารถควบคุมได้ทุกอย่าง
  2. ผ่าน Web-based Interface (เช่น phpMyAdmin): วิธีนี้เหมาะสำหรับผู้เริ่มต้น เพราะใช้งานง่ายและมี GUI ที่ช่วยให้การจัดการ Database เป็นเรื่องง่าย

การเข้าถึง MySQL ผ่าน Command Line (SSH)

สมมติว่าเราได้เชื่อมต่อกับ Server ผ่าน SSH เรียบร้อยแล้ว เราสามารถเข้าถึง MySQL ได้โดยใช้คำสั่ง:

mysql -u root -p

คำอธิบาย:

  • mysql: คือคำสั่งเรียกใช้งาน MySQL Client
  • -u root: ระบุ User ที่ต้องการใช้ในการเชื่อมต่อ ในที่นี้คือ User "root" (ซึ่งเป็น User ที่มีสิทธิ์สูงสุด)
  • -p: บอกให้ MySQL Client ถาม Password

หลังจากรันคำสั่งนี้ ระบบจะถาม Password ของ User "root" ให้เราใส่ Password แล้วกด Enter หาก Password ถูกต้อง เราจะเข้าสู่ MySQL Shell ได้สำเร็จ

ข้อผิดพลาดที่พบบ่อย:

  • "Access denied for user 'root'@'localhost'": ข้อผิดพลาดนี้หมายความว่า User "root" ไม่มีสิทธิ์ในการเข้าถึง MySQL จาก Host "localhost" (หรือ Host อื่นๆ) เราสามารถแก้ไขได้โดยการ Grant สิทธิ์ให้ User "root" หรือสร้าง User ใหม่ที่มีสิทธิ์ที่เหมาะสม
  • "Can't connect to MySQL server on 'localhost'": ข้อผิดพลาดนี้หมายความว่า MySQL Server ไม่ได้รันอยู่ หรือไม่ได้รันบน Host "localhost" เราต้องตรวจสอบให้แน่ใจว่า MySQL Server ทำงานอยู่ และ Host ที่เราใช้ในการเชื่อมต่อถูกต้อง

การเข้าถึง MySQL ผ่าน Web-based Interface (phpMyAdmin)

หากเราติดตั้ง phpMyAdmin ไว้บน Server เราสามารถเข้าถึง phpMyAdmin ได้ผ่าน Web Browser โดยพิมพ์ URL ของ phpMyAdmin (เช่น http://your-server-ip/phpmyadmin) จากนั้นใส่ Username และ Password ของ User ที่มีสิทธิ์ในการเข้าถึง MySQL

การสร้าง Database

เมื่อเราเข้าถึง MySQL ได้แล้ว ขั้นตอนต่อไปคือการสร้าง Database ที่เราจะใช้เก็บข้อมูลของโปรเจกต์ของเรา

การสร้าง Database ผ่าน Command Line (MySQL Shell)

ใน MySQL Shell เราสามารถสร้าง Database ได้โดยใช้คำสั่ง:

CREATE DATABASE your_database_name;

คำอธิบาย:

  • CREATE DATABASE: คือคำสั่งสร้าง Database
  • your_database_name: คือชื่อ Database ที่เราต้องการสร้าง (ควรตั้งชื่อให้สื่อความหมายและเกี่ยวข้องกับโปรเจกต์ของเรา)

ตัวอย่าง:

CREATE DATABASE my_project_db;

หลังจากรันคำสั่งนี้ MySQL จะสร้าง Database ชื่อ "my_project_db" ให้เรา

ข้อผิดพลาดที่พบบ่อย:

  • "ERROR 1006 (HY000): Can't create database 'your_database_name'; check permissions": ข้อผิดพลาดนี้หมายความว่า User ที่เราใช้ในการเชื่อมต่อไม่มีสิทธิ์ในการสร้าง Database เราต้องใช้ User ที่มีสิทธิ์ "CREATE DATABASE" หรือ Grant สิทธิ์นี้ให้ User ที่เราใช้อยู่
  • "ERROR 1007 (HY000): Can't create database 'your_database_name'; database exists": ข้อผิดพลาดนี้หมายความว่า Database ที่เราต้องการสร้างมีอยู่แล้ว เราต้องเลือกชื่อ Database ใหม่ หรือลบ Database เดิมก่อน

การสร้าง Database ผ่าน phpMyAdmin

ใน phpMyAdmin เราสามารถสร้าง Database ได้โดยคลิกที่ Tab "Databases" จากนั้นพิมพ์ชื่อ Database ที่เราต้องการสร้างในช่อง "Create database" และคลิกปุ่ม "Create"

การสร้าง User และ Grant Privileges

หลังจากที่เราสร้าง Database แล้ว เราควรสร้าง User ใหม่สำหรับโปรเจกต์ของเรา และ Grant สิทธิ์ที่จำเป็นในการเข้าถึงและจัดการ Database นั้นๆ การทำเช่นนี้จะช่วยเพิ่มความปลอดภัยให้กับโปรเจกต์ของเรา

การสร้าง User และ Grant Privileges ผ่าน Command Line (MySQL Shell)

ใน MySQL Shell เราสามารถสร้าง User และ Grant Privileges ได้โดยใช้คำสั่ง:

CREATE USER 'your_username'@'%' IDENTIFIED BY 'your_password';
GRANT ALL PRIVILEGES ON your_database_name.* TO 'your_username'@'%';
FLUSH PRIVILEGES;

คำอธิบาย:

  • CREATE USER 'your_username'@'%' IDENTIFIED BY 'your_password';: คือคำสั่งสร้าง User ใหม่ โดย
    • 'your_username': คือ Username ที่เราต้องการสร้าง
    • '%': หมายถึง User นี้สามารถเข้าถึง MySQL ได้จากทุก Host (หากต้องการจำกัด Host ให้ระบุ IP Address หรือ Hostname แทน)
    • 'your_password': คือ Password ของ User ที่เราสร้าง
  • GRANT ALL PRIVILEGES ON your_database_name.* TO 'your_username'@'%';: คือคำสั่ง Grant สิทธิ์ทั้งหมด (ALL PRIVILEGES) ให้กับ User ที่เราสร้าง บน Database ที่เราสร้าง (your_database_name.* หมายถึงทุก Table ใน Database นั้น)
  • FLUSH PRIVILEGES;: คือคำสั่ง Refresh สิทธิ์ เพื่อให้ MySQL รับรู้การเปลี่ยนแปลง

ตัวอย่าง:

CREATE USER 'my_project_user'@'%' IDENTIFIED BY 'my_secret_password';
GRANT ALL PRIVILEGES ON my_project_db.* TO 'my_project_user'@'%';
FLUSH PRIVILEGES;

หลังจากรันคำสั่งนี้ MySQL จะสร้าง User ชื่อ "my_project_user" ที่มี Password "my_secret_password" และมีสิทธิ์ทั้งหมดบน Database "my_project_db"

ข้อควรระวัง:

  • การใช้ GRANT ALL PRIVILEGES: การ Grant สิทธิ์ทั้งหมดให้กับ User อาจไม่จำเป็นเสมอไป เราควร Grant เฉพาะสิทธิ์ที่จำเป็นเท่านั้น เพื่อลดความเสี่ยงด้านความปลอดภัย
  • การใช้ '%': การอนุญาตให้ User เข้าถึง MySQL จากทุก Host อาจไม่ปลอดภัย เราควรจำกัด Host ให้แคบลงเท่าที่จำเป็น

การสร้าง User และ Grant Privileges ผ่าน phpMyAdmin

ใน phpMyAdmin เราสามารถสร้าง User ได้โดยคลิกที่ Tab "User accounts" จากนั้นคลิกปุ่ม "Add user account" กรอกข้อมูล Username, Hostname, Password และ Privileges ที่ต้องการ แล้วคลิกปุ่ม "Go"

สรุป

ในบทความนี้ เราได้เรียนรู้วิธีการสร้าง Database และ User ใน MySQL ทั้งผ่าน Command Line และ phpMyAdmin การตั้งค่า Database และ User อย่างถูกต้องเป็นสิ่งสำคัญสำหรับการ Deploy โปรเจกต์ PHP ของเราให้ทำงานได้อย่างราบรื่นและปลอดภัย ในบทความถัดไป เราจะเรียนรู้วิธีการใช้ Composer เพื่อจัดการ Dependencies ของโปรเจกต์ของเรา

Office.in.th Custom Service

이 구조를 바탕으로 시스템을 개발하거나 맞춤 변경하고 싶으신가요?

Office.in.th는 엔터프라이즈 웹 애플리케이션, API 연동, 공공/민간 업무 관리 시스템을 설계·개발하며 장기 지원을 제공합니다.

소프트웨어 개발 서비스 보기