วิธีติดตั้ง MySQL บน Fedora พร้อมเปิดใช้งานและตั้งค่าความปลอดภัย

ติดตั้ง MySQL บน Fedora ด้วย DNF เปิด mysqld ตรวจสถานะ เชื่อมต่อฐานข้อมูล และตั้งค่าความปลอดภัยเบื้องต้นแบบทีละขั้น

วิธีติดตั้ง MySQL บน Fedora พร้อมเปิดใช้งานและตั้งค่าความปลอดภัย

ถ้าต้องการฐานข้อมูล 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, สิทธิ์ของบัญชี และการเข้ารหัสก่อน อย่าเปิดพอร์ตฐานข้อมูลสู่อินเทอร์เน็ตโดยไม่มีมาตรการควบคุม

แหล่งอ้างอิง

บทความนี้เป็นประโยชน์ไหม?
9teedev
9teedev
นักการเรียนรู้ AI, Automation และการทำธุรกิจด้วยตัวคนเดียว — Tech blog ภาษาไทยโดยคนที่ชอบ self-host และของมีสไตล์

ความคิดเห็น

รับบทความดี ๆ
ส่งตรงถึงอีเมล

สรุปเรื่องน่าสนใจจากโลก Tech, Dev และ AI สัปดาห์ละ 1 ครั้ง ไม่มีสแปม