เมื่อมีการติดตั้งเว็บเซิร์ฟเวอร์และระบบได้เริ่มทำงานแล้ว ต้องติดตั้งระบบฐานข้อมูลเพื่อให้สามารถจัดเก็บและจัดการข้อมูลสำหรับไซต์ เราจะติดตั้ง MariaDB ซึ่งเป็นทางเลือกที่พัฒนาโดยโดย Oracle
หากต้องการติดตั้งซอฟต์แวร์นี้ ให้รันคำสั่ง
sudo dnf install mariadb-server
เมื่อการติดตั้งเสร็จสิ้น คุณสามารถเปิดใช้งานและเริ่มต้นเซิร์ฟเวอร์ MariaDB ด้วย
sudo systemctl start mariadb
เพื่อรองรับความปลอดภัยของเซิร์ฟเวอร์ฐานข้อมูล ขอแนะนำให้เรียกใช้สคริปต์ความปลอดภัยที่มาพร้อมกับ MariaDB ที่ติดตั้งไว้ล่วงหน้า สคริปต์นี้จะลบการตั้งค่าเริ่มต้นที่ไม่ปลอดภัยบางส่วนและล็อคการเข้าถึงระบบฐานข้อมูล หากต้องการดำเนินการ สามารถใช้คำสั่งดังต่อไปนี้
sudo mysql_secure_installation
หลังจากรันสคริปต์นี้จะเห็นว่าจะมีข้อความขอให้ป้อนรหัสผ่าน root ฐานข้อมูลปัจจุบัน คนละส่วนกับ รหัสผ่าน root ของระบบ ผู้ใช้ root ฐานข้อมูลคือผู้ใช้ที่เป็นผู้ดูแลระบบที่มีสิทธิ์ทุกอย่างของระบบฐานข้อมูล เนื่องจากคุณเพิ่งติดตั้ง MariaDB และยังไม่ได้ทำการเปลี่ยนแปลงการกำหนดค่าใดๆ รหัสผ่านนี้จะว่างเปล่า ดังนั้นเพียงกด ENTER
ข้อความถัดไปจะถามว่า ต้องการตั้งค่ารหัสผ่าน root ฐานข้อมูลหรือไม่ เนื่องจาก MariaDB ใช้วิธีการรับรองความถูกต้องแบบพิเศษสำหรับผู้ใช้ root ซึ่งโดยทั่วไปจะปลอดภัยกว่าการใช้รหัสผ่าน คุณจึงไม่จำเป็นต้องตั้งค่านี้ในตอนนี้ พิมพ์ N แล้วกด ENTER จากนั้น คุณสามารถกด Y แล้วกด ENTER เพื่อยอมรับค่าเริ่มต้นสำหรับคำถามต่อๆ ไปทั้งหมด การดำเนินการนี้จะลบผู้ใช้ที่ไม่ระบุชื่อและฐานข้อมูลที่ใช้ทดสอบ ปิดใช้งานการเข้าสู่ระบบ root ระยะไกล
เมื่อเสร็จแล้ว ให้เข้าสู่ระบบคอนโซล MariaDB โดยพิมพ์
sudo mysql
สิ่งนี้จะเชื่อมต่อกับเซิร์ฟเวอร์ MariaDB ในฐานะ root ผู้ใช้ฐานข้อมูลผู้ดูแลระบบ และจะเห็นผลลัพธ์ดังนี้
เพื่อความปลอดภัยที่เพิ่มขึ้น วิธีที่ดีที่สุดคือตั้งค่าบัญชีผู้ใช้ที่ให้สิทธิ์เข้าถึงฐานข้อมูลบางฐานข้อมูลโดยเฉพาะ สำหรับในกรณีที่จะมีฐานข้อมูลหลายฐานข้อมูลที่โฮสต์บนเซิร์ฟเวอร์ เพื่อแสดงให้เห็นการตั้งค่าดังกล่าว เราจะสร้างฐานข้อมูลชื่อ example_database และผู้ใช้ชื่อ example_user
หากต้องการสร้างฐานข้อมูลใหม่ ให้รันคำสั่งต่อไปนี้จากคอนโซล MariaDB ของคุณ
CREATE DATABASE example_database;
ตอนนี้คุณสามารถสร้างผู้ใช้ใหม่และให้สิทธิ์การใช้งานในฐานข้อมูลที่เพิ่งสร้างขึ้น คำสั่งต่อไปนี้จะกำหนดรหัสผ่านของผู้ใช้ จากตัวอย่าง เราจะใช้รหัสผ่านว่า password
GRANT ALL ON example_database.* TO 'example_user'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;
สิ่งนี้จะทำให้ผู้ใช้ example_user มีสิทธิ์ในฐานข้อมูล example_database ในขณะเดียวกันก็ป้องกันไม่ให้ผู้ใช้รายนี้สร้างหรือแก้ไขฐานข้อมูลอื่นบนเซิร์ฟเวอร์
ล้างสิทธิ์เพื่อให้แน่ใจว่าได้รับการบันทึกและพร้อมใช้งานในเซสชันปัจจุบัน
FLUSH PRIVILEGES;
ต่อไปนี้ ให้ออกจากเชลล์ MariaDB
exit
สามารถทดสอบได้ว่าผู้ใช้ใหม่มีสิทธิ์ตามที่กำหนดค่าไว้หรือไม่โดยเข้าสู่ระบบคอนโซล MariaDB อีกครั้ง โดยใช้ชื่อฐานข้อมูลและรหัสผ่านที่กำหนด
mysql -u example_user -p
SHOW DATABASES;
จะให้ผลลัพธ์ดังนี้
หากต้องการออกจากคำสั่ง Maria DB shell ให้พิมพ์
exit