phpMyAdmin คืออะไร?
phpMyAdmin คือเครื่องมือ web-based สำหรับจัดการ MySQL และ MariaDB database เขียนด้วย PHP ใช้ผ่าน browser โดยไม่ต้องติดตั้งโปรแกรมเพิ่มเติม มาพร้อมกับ cPanel ของ hosting ทุกเจ้า
phpMyAdmin รองรับการทำงานทุกอย่างที่ MySQL สามารถทำได้ ตั้งแต่สร้างและลบ database, สร้าง table, เพิ่มแก้ไขลบข้อมูล, รัน SQL query, import/export ไฟล์ SQL, จัดการ user permissions จนถึง optimize table
เข้าใช้งาน phpMyAdmin ผ่าน cPanel
- Login เข้า cPanel
- ไปที่ section Databases
- คลิก phpMyAdmin
- หน้า phpMyAdmin จะเปิดขึ้นโดยอัตโนมัติและ login ด้วย cPanel credentials
หรือเข้าโดยตรงที่ URL: https://yourdomain.com/phpmyadmin (ถ้า hosting ตั้งค่าไว้)
สร้าง Database และ User ใน cPanel
ก่อนใช้ phpMyAdmin ต้องสร้าง database ผ่าน cPanel ก่อน เนื่องจาก phpMyAdmin บน Shared Hosting ไม่ให้สร้าง database โดยตรง
ขั้นตอนสร้าง Database
- cPanel > Databases > MySQL Databases
- กรอกชื่อ database ใน "Create New Database" (เช่น
myshop) - คลิก Create Database
- ชื่อ database จริงจะมี prefix เป็น cPanel username เช่น
cpusername_myshop
ขั้นตอนสร้าง Database User
- เลื่อนลงมาที่ "MySQL Users" > "Add New User"
- กรอก Username (เช่น
myshopuser) - ตั้ง Password ที่แข็งแรง ใช้ Password Generator ช่วยได้
- คลิก Create User
- Username จริงจะเป็น
cpusername_myshopuser
ขั้นตอน Assign User ให้ Database (สำคัญมาก)
- เลื่อนลงที่ "Add User To Database"
- เลือก User และ Database ที่สร้างไว้
- คลิก Add
- เลือก Privileges: ติ๊ก "All Privileges" แล้วคลิก Make Changes
การใช้งาน phpMyAdmin เบื้องต้น
ส่วนประกอบหลักของ phpMyAdmin
- แถบซ้าย — รายการ database ทั้งหมดที่เข้าถึงได้ คลิกเพื่อเปิด และเห็น table ข้างใน
- แถบบน — เมนูหลัก: Structure, SQL, Search, Query, Export, Import, Operations, Privileges
- พื้นที่กลาง — แสดงข้อมูล table หรือผลลัพธ์ของ query
สร้าง Table ใหม่
- คลิก database ที่ต้องการทางซ้าย
- กรอกชื่อ table และจำนวน column
- คลิก Go
- กำหนดชื่อ, ประเภทข้อมูล, ขนาด และ attribute ของแต่ละ column
- เลือก Primary Key สำหรับ column id
- คลิก Save
Import ไฟล์ SQL
- เลือก database ทางซ้าย
- คลิกแท็บ Import
- คลิก Browse เลือกไฟล์ .sql หรือ .sql.gz
- เลือก Encoding เป็น utf-8
- คลิก Go
Export ไฟล์ SQL
- เลือก database ทางซ้าย
- คลิกแท็บ Export
- เลือก Method: Quick (เร็ว) หรือ Custom (กำหนดเองได้)
- Format: SQL
- คลิก Go เพื่อดาวน์โหลด
รัน SQL Query ด้วยตัวเอง
-- ดูข้อมูลทั้งหมดใน table
SELECT * FROM wp_posts LIMIT 10;
-- ค้นหาข้อมูล
SELECT * FROM wp_users WHERE user_email = '[email protected]';
-- เพิ่มข้อมูล
INSERT INTO products (name, price, stock)
VALUES ('สินค้า A', 299.00, 100);
-- แก้ไขข้อมูล
UPDATE wp_options
SET option_value = 'https://yourdomain.com'
WHERE option_name = 'siteurl';
-- ลบข้อมูล (ระวัง!)
DELETE FROM wp_spam WHERE comment_date < '2024-01-01';
-- ดูโครงสร้าง table
DESCRIBE wp_posts;
-- ตรวจสอบขนาด database
SELECT
table_schema AS 'Database',
ROUND(SUM(data_length + index_length) / 1024 / 1024, 2) AS 'Size (MB)'
FROM information_schema.tables
WHERE table_schema = 'cpusername_mydb'
GROUP BY table_schema;
ตรวจสอบ Connection จาก PHP
<?php
// ทดสอบ connection ด้วย mysqli
$conn = mysqli_connect(
'localhost', // host
'cpuser_dbuser', // username
'yourpassword', // password
'cpuser_dbname' // database name
);
if (!$conn) {
die('Connection failed: ' . mysqli_connect_error());
}
echo 'Connected successfully to MySQL!';
echo 'MySQL version: ' . mysqli_get_server_info($conn);
mysqli_close($conn);
?>
<?php
// ทดสอบ connection ด้วย PDO
try {
$pdo = new PDO(
'mysql:host=localhost;dbname=cpuser_dbname;charset=utf8mb4',
'cpuser_dbuser',
'yourpassword'
);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo 'PDO connection successful!';
} catch (PDOException $e) {
echo 'Connection failed: ' . $e->getMessage();
}
?>
ตรวจสอบว่า MySQL ทำงานถูกต้อง
-- ตรวจสอบ MySQL version
SELECT VERSION();
-- ตรวจสอบ database ทั้งหมดที่มีสิทธิ์เข้าถึง
SHOW DATABASES;
-- ตรวจสอบ table ทั้งหมดใน database
SHOW TABLES;
-- ตรวจสอบ status ของ table
CHECK TABLE wp_posts;
-- ดู process ที่รันอยู่ (ต้องมีสิทธิ์ PROCESS)
SHOW PROCESSLIST;
-- ตรวจสอบค่า max_allowed_packet
SHOW VARIABLES LIKE 'max_allowed_packet';
แก้ปัญหาที่พบบ่อย
Error: "Access denied for user"
Database user ไม่มีสิทธิ์เข้าถึง database นั้น หรือรหัสผ่านผิด
-- ตรวจสอบ error message เต็มๆ เช่น:
-- Access denied for user 'cpuser_myuser'@'localhost' (using password: YES)
-- วิธีแก้ใน cPanel:
-- 1. ตรวจสอบว่า user ถูก assign ให้ database แล้ว
-- cPanel > MySQL Databases > Current Users (section Add User To Database)
-- 2. ถ้ายังไม่มี ให้ Add User To Database ใหม่
-- 3. ตรวจสอบ password ว่าถูกต้อง
Error: "max_allowed_packet" เมื่อ import ไฟล์ใหญ่
ไฟล์ SQL ที่ import มีขนาดใหญ่กว่าค่า max_allowed_packet ที่ตั้งไว้
-- ดูค่าปัจจุบัน
SHOW VARIABLES LIKE 'max_allowed_packet';
-- ค่าเริ่มต้นมักเป็น 16MB = 16777216
-- บน Shared Hosting เปลี่ยนค่านี้ได้ยาก
-- วิธีแก้:
-- 1. แบ่งไฟล์ SQL เป็นหลายส่วนด้วย tool เช่น BigDump
-- 2. ใช้ wp-cli สำหรับ WordPress: wp db import backup.sql
-- 3. ติดต่อ hosting support ขอเพิ่มค่า max_allowed_packet
Error: "Table is marked as crashed"
Table เสียหาย มักเกิดจาก server ปิดกะทันหันหรือ disk error
-- ซ่อม table ที่เสียหาย
REPAIR TABLE wp_posts;
-- ตรวจสอบ table ก่อนซ่อม
CHECK TABLE wp_posts;
-- ถ้า REPAIR ไม่ได้ผล ลอง optimize
OPTIMIZE TABLE wp_posts;
-- ผ่าน phpMyAdmin:
-- เลือก table > Operations > Repair table
-- หรือ ตรวจสอบ table ทั้งหมดใน database ด้วย
-- เลือกทุก table > With selected: Repair table
phpMyAdmin timeout ระหว่าง import ไฟล์ใหญ่
Script timeout ของ PHP หมดก่อนที่ import จะเสร็จ
-- ใช้ BigDump tool แทน phpMyAdmin สำหรับไฟล์ใหญ่:
-- 1. ดาวน์โหลด bigdump.php
-- 2. แก้ไขค่า database connection ใน bigdump.php
-- 3. อัพโหลดพร้อมไฟล์ SQL ไปที่ public_html/
-- 4. เปิด browser ไปที่ https://yourdomain.com/bigdump.php
-- 5. ลบไฟล์ bigdump.php หลังใช้งานเสร็จ!
คำถามที่พบบ่อย
สามารถสร้าง database หลายตัวบน Shared Hosting ได้ไหม?
ได้ แต่จำนวนขึ้นอยู่กับแพ็กเกจ hosting บางแพ็กเกจ Basic จำกัด 1-5 database ส่วนแพ็กเกจ Pro อาจไม่จำกัด ตรวจสอบรายละเอียดจาก hosting provider
phpMyAdmin สามารถจัดการ database ต่างเซิร์ฟเวอร์ได้ไหม?
phpMyAdmin บน Shared Hosting ส่วนใหญ่จำกัดให้เชื่อมต่อได้เฉพาะ localhost เท่านั้น ถ้าต้องการจัดการ remote database ต้องติดตั้ง phpMyAdmin เองหรือใช้ tool อื่น เช่น TablePlus, DBeaver หรือ MySQL Workbench
ควร backup database บ่อยแค่ไหน?
สำหรับเว็บ e-commerce หรือที่มีข้อมูลเปลี่ยนแปลงบ่อย ควร backup ทุกวัน สำหรับบล็อกทั่วไปอาจ backup สัปดาห์ละครั้ง cPanel มีฟีเจอร์ backup อัตโนมัติ และแนะนำให้ backup ไปเก็บที่ cloud storage ภายนอกด้วย ไม่ใช่เก็บบน hosting เดียวกันเท่านั้น