สร้าง MySQL User + Database และจัดการฐานข้อมูลด้วย Adminer

  1. วิธีลง LAMP Stack (Apache, MySQL/MariaDB, PHP) ไปยัง Ubuntu บน EC2
  2. สร้าง MySQL User + Database และจัดการฐานข้อมูลด้วย Adminer
  3. ตั้งค่า Virtual Host ใน Apache เพื่อใช้งาน Domain และ SSL บน Ubuntu
  4. ลง Let’s Encrypt ใน Apache บน Ubuntu เพื่อใช้เว็บ https

จากโพส วิธีลง LAMP Stack (Apache, MySQL, PHP) ไปยัง Ubuntu บน EC2 เมื่อเราลงโปรแกรมสำหรับการเป็น Web Server เรียบร้อยแล้ว ในโพสนี้เราจะมาดูวิธีสร้าง MySQL User และ Database และจัดการฐานข้อมูล ด้วย Adminer PHP database management

โดยเบื้องต้นเมื่อเราลง MySQL เรียบร้อยแล้ว จะมีผู้ใช้งาน default ที่ระบบสร้างไว้ คือ root user แต่ในการใช้งานจริงนั้นไม่ควรจะใช้ผู้ใช้งาน root สำหรับการเชื่อมต่อกับฐานข้อมูล ดังนั้น โพสนี้จะอธิบายวิธีการสร้างฐานข้อมูล การสร้างและเพิ่มผู้ใช้งานลงในฐานข้อมูลนั้น และแถมด้วยการลงและใช้หน้าเว็บจัดการกับฐานข้อมูลที่เราสร้างขึ้นมา ด้วยสคริปต์ Adminer

หมายเหตุ กรณีใช้ MariaDB

คำสั่งในโพสนี้สามารถใช้ได้กับทั้ง MariaDB และ MySQL

การสร้างฐานข้อมูลและผู้ใช้งาน

Step 1: เปิด MySQL Shell โดยการสั่งงาน MySQL ผ่าน command line นั้นทำได้โดยเปิด MySQL Shell ด้วยคำสั่ง

sudo mysql -u root -p

ระบบจะขึ้นมาให้ใส่รหัสผ่านของ root ที่เราตั้งไว้ หากเข้าใช้งานสำเร็จจะปรากฎ MySQL Shell ขึ้นมา ดังภาพ

Step 2: สร้างฐานข้อมูลใหม่ โดยใน MySQL Shell นั้น สามารถสร้างฐานข้อมูลใหม่โดยใช้คำสั่ง

CREATE DATABASE DATABASE_NAME;

โดยเปลี่ยน DATABASE_NAME เป็นชื่อฐานข้อมูลที่ต้องการ และเมื่อสร้างแล้วสามารถดูรายชื่อฐานข้อมูลทั้งหมดได้โดยใช้คำสั่ง

SHOW DATABASES;

จะปรากฎรายชื่อฐานข้อมูลทั้งหมดในเครื่อง ดังตัวอย่าง

Step 3: สร้างผู้ใช้งาน ขั้นตอนนี้ทำใน MySQL Shell เช่นกัน โดยใช้คำสั่ง

CREATE USER 'NEW_USERNAME'@'localhost' IDENTIFIED BY 'NEW_PASSWORD';

โดยเปลี่ยน NEW_USERNAME และ NEW_PASSWORD ตามที่ต้องการ

Step 4: ตั้งค่าสิทธิการใช้งาน เมื่อสร้างผู้ใช้งานใหม่ตามขั้นตอนก่อนหน้าเรียบร้อยแล้ว ผู้ใช้งานใหม่จะยังไม่สามารถเข้าถึงฐานข้อมูลใดๆได้ เนื่องจากเรายังไม่ได้ตั้งค่าสิทธิในการใช้งาน ซึ่งสามารถทำได้โดยใช้คำสั่ง

GRANT ALL PRIVILEGES ON DATABASE_NAME.* TO 'NEW_USERNAME'@'localhost';

เปลี่ยน DATABASE_NAME และ NEW_USERNAME เป็นชื่อฐานข้อมูลและชื่อผู้ใช้งานที่สร้างไว้ก่อนหน้า

โดยในที่นี้เราอนุญาต ALL PRIVILEGES คือให้สิทธิในการทำได้ทุกอย่างบนฐานข้อมูลนี้ แต่หากต้องการจำกัดสิทธิให้ทำได้เพียงบางอย่างก็สามารถทำได้โดยเปลี่ยนคำว่า ALL PRIVILEGES เป็นชื่อสิทธิอื่นๆ ดังนี้ CREATE, DROP, DELETE, INSERT, SELECT, UPDATE, GRANT OPTION เป็นต้น

เมื่อทำการอนุญาตเรียบร้อยแล้ว สามารถทดลองเข้าใช้งานโดยชื่อผู้ใช้งานใหม่ได้ด้วยการเปิด MySQL Shell ในชื่อผู้ใช้งานใหม่ โดยให้ปิด MySQL Shell เดิมออกมาก่อนด้วยการพิมพ์คำสั่ง exit; และเปิด MySQL Shell ใหม่ด้วยชื่อผู้ใช้งานใหม่ ด้วยคำสั่ง

mysql -u NEW_USER -p

เมื่อเข้าใช้งานได้แล้วอาจจะลองรันคำสั่ง SHOW DATABASES; เพื่อดูรายชื่อฐานข้อมูลที่ผู้ใช้งานนี้มีสิทธิเข้าถึงได้ และก็สามารถใช้คำสั่ง SQL อื่นๆได้ เช่น CREATE TABLE เป็นต้น

ติดตั้งสคริปต์ Adminer PHP Database Management

แถมท้ายด้วยการติดตั้งสคริปต์ Adminer ซึ่งเป็นสคริปต์ PHP สำหรับจัดการฐานข้อมูล (คล้ายๆ PHPMyAdmin) แต่สามารถติดตั้งและใช้งานได้ง่ายมากๆเนื่องจากเป็นไฟล์ PHP ไฟล์เดียว สามารถลงโดยดาวน์โหลดไฟล์ได้จากเว็บไซต์ Adminer.org และนำไฟล์ไปไว้ยัง Website home directory จากนั้นก็สามารถเข้าใช้งานผ่านหน้าเว็บได้เลย

หรือหากลงโดยวิธีในโพส วิธีลง LAMP Stack (Apache, MySQL, PHP) ไปยัง Ubuntu บน EC2 ก็สามารถใช้คำสั่งใน command line ตามตัวอย่าง

# Navigate to home directory
cd /var/www/html

# Download Adminer
sudo wget https://www.adminer.org/latest-en.php -O adminer.php

จากนั้นสามารถเข้าใช้งานผ่านหน้าเว็บได้ที่ http://YOUR_IP_ADDRESS/adminer.php

เข้าระบบด้วยชื่อผู้ใช้งาน รหัสผ่าน และกรอกชื่อฐานข้อมูลที่ทำการสร้างไว้ในขั้นตอนก่อนหน้า โดยหากเข้าใช้งานได้แล้วก็จะสามารถจัดการฐานข้อมูลผ่านหน้าเว็บได้ เช่นการสร้างตาราง การจัดการข้อมูลในตาราง เป็นต้น