ถ้าต้องการฐานข้อมูล MySQL สำหรับพัฒนาเว็บหรือทดลองโปรเจกต์บน Fedora สามารถติดตั้งแพ็กเกจ mysql-server ผ่าน DNF ได้โดยตรง จากนั้นเปิด service และตรวจสอบการเชื่อมต่อ
ตัวอย่างในบทความอ้างอิงการติดตั้งบน Fedora 44 ซึ่งได้ MySQL 8.4.10 จาก repository updates เวอร์ชันที่ติดตั้งได้อาจต่างกันตามรุ่น Fedora และช่วงเวลาที่ใช้งาน
สิ่งที่ต้องมีก่อนเริ่ม
- Fedora ที่เชื่อมต่ออินเทอร์เน็ตได้
- บัญชีผู้ใช้ที่มีสิทธิ์
sudo - พื้นที่ว่างเพียงพอสำหรับแพ็กเกจและฐานข้อมูล
คู่มือนี้ใช้แพ็กเกจจาก Fedora ไม่ใช่ MySQL repository ของ Oracle หากเครื่องมีฐานข้อมูลเดิมอยู่แล้ว ให้สำรองข้อมูลและตรวจสอบการตั้งค่าก่อนเปลี่ยนแพ็กเกจหรือรันเครื่องมือด้านความปลอดภัย
1. ติดตั้ง MySQL Server
เปิด Terminal แล้วรัน:
sudo dnf install mysql-server
ตรวจรายการแพ็กเกจและตอบ y เพื่อยืนยัน ในตัวอย่าง DNF ติดตั้ง mysql-server พร้อม client และ dependencies เมื่อเสร็จจะเห็น Complete!
ถ้ามีคำเตือน pending offline transaction: การติดตั้งอาจทำให้รายการอัปเดตแบบออฟไลน์ที่รออยู่ถูกยกเลิก ใน log ตัวอย่าง DNF แจ้งว่ารายการเดิมถูก invalidated และแนะนำให้จัดตารางใหม่ด้วย
dnf5daemon-serverหากเห็นคำเตือนนี้ให้ตรวจรายการอัปเดตใน Software หรือวิธีจัดตารางที่ DNF แสดงก่อนดำเนินการ
2. เปิด MySQL และตั้งให้เริ่มพร้อมระบบ
sudo systemctl enable --now mysqld
คำสั่งนี้ตั้งให้ mysqld เริ่มอัตโนมัติเมื่อบูต และเริ่ม service ทันที ชื่อ service ของแพ็กเกจในตัวอย่างคือ mysqld
ตรวจสถานะ:
systemctl status mysqld
ถ้าทำงานปกติให้มองหาบรรทัด Active: active (running) และ Server is operational กด q เพื่อออกจากหน้าสถานะ
หากต้องการตรวจสั้น ๆ ใช้:
systemctl is-active mysqld
ผลที่คาดหวังคือ active ถ้าไม่เริ่มทำงาน ให้ดู log ก่อนแก้ไข:
sudo journalctl -u mysqld -b --no-pager
3. ตั้งค่าความปลอดภัยเริ่มต้น
การติดตั้งสำเร็จไม่ได้แปลว่าบัญชีเริ่มต้นปลอดภัยแล้ว วิธีตั้งรหัสผ่านเริ่มต้นอาจต่างกันตามแพ็กเกจและสถานะข้อมูลเดิม บางเครื่องอาจเข้า root ได้โดยไม่ใช้รหัสผ่าน ขณะที่บางวิธีติดตั้งมีรหัสผ่านชั่วคราวอยู่แล้ว
สำหรับการติดตั้งใหม่บนเครื่องส่วนตัว ให้รันเครื่องมือแบบโต้ตอบ:
sudo mysql_secure_installation
อ่านคำถามทีละข้อ เครื่องมือนี้ช่วยตั้งรหัสผ่าน root ลบบัญชี anonymous จำกัด root ที่เชื่อมต่อจากภายนอก และลบฐานข้อมูลทดสอบได้ เลือกคำตอบตามการใช้งาน โดยทั่วไปเครื่องที่เพิ่งติดตั้งและไม่มีข้อมูลใช้งานควรตั้งรหัสผ่านที่แข็งแรง ลบบัญชี anonymous และฐานข้อมูลทดสอบที่ไม่ใช้ รวมถึงไม่เปิด root ให้เข้าได้จากภายนอก
ระวัง: คำตอบบางข้อเปลี่ยนบัญชี สิทธิ์ หรือ ลบฐานข้อมูล test หากเป็นเครื่องที่มีข้อมูลหรือระบบอื่นใช้อยู่ ให้สำรองข้อมูลและตรวจผลกระทบก่อน อย่าใส่รหัสผ่านจริงลงในคำสั่งหรือแชร์ผ่านแชต หากมีรหัสผ่าน root เดิมอยู่ ให้ใช้รหัสนั้นตามที่โปรแกรมถาม; หากเข้าไม่ได้ อย่าเดาหรือลบ data directory ให้ตรวจวิธีติดตั้งและเอกสารก่อน
4. ทดลองเชื่อมต่อและตรวจเวอร์ชัน
หลังตั้งรหัสผ่านแล้ว เชื่อมต่อด้วย:
mysql -u root -p
พิมพ์รหัสผ่านเมื่อโปรแกรมถาม ตัวอักษรจะไม่แสดงบนหน้าจอ เมื่อเข้าได้จะเห็น prompt mysql> จากนั้นตรวจเวอร์ชัน:
SELECT VERSION();
ในเครื่องตัวอย่างได้ 8.4.10 แต่เครื่องอื่นอาจได้เวอร์ชันต่างกัน ออกจาก MySQL ด้วย:
exit
ถ้าเจอ Access denied ให้ตรวจบัญชีและวิธียืนยันตัวตนที่ใช้จริง รวมถึงรหัสผ่านที่เพิ่งตั้ง ก่อนลองวิธีกู้บัญชีจากเอกสาร MySQL อย่าสร้างรหัสผ่านใหม่ซ้ำโดยไม่ทราบผลกระทบ
5. ใช้บัญชีแยกสำหรับแอปพลิเคชัน
บัญชี root มีสิทธิ์สูง ใช้สำหรับดูแลระบบเท่าที่จำเป็น ส่วนแอปควรมีบัญชีของตัวเองและได้รับสิทธิ์เฉพาะฐานข้อมูลที่ต้องใช้ การสร้างบัญชีและกำหนดสิทธิ์ให้เหมาะขึ้นอยู่กับแอป อ่านตัวอย่างในเอกสาร MySQL ก่อนใช้งานจริง
คู่มือนี้ไม่ได้เปิดการเชื่อมต่อจากเครื่องอื่น หากต้องใช้ remote access ให้ตรวจ bind_address, firewall, สิทธิ์ของบัญชี และการเข้ารหัสก่อน อย่าเปิดพอร์ตฐานข้อมูลสู่อินเทอร์เน็ตโดยไม่มีมาตรการควบคุม
9tee



ความคิดเห็น