Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> ระบบ >> Linux

วิธีติดตั้งและกำหนดค่า MySQL บน Ubuntu 18.04 แบบละเอียด

MySQL เป็นระบบจัดการฐานข้อมูลเชิงสัมพันธ์ (RDBMS) โอเพนซอร์ส ที่ทรงพลังและใช้กันอย่างแพร่หลาย จัดระเบียบข้อมูลในตารางข้อมูลเดี่ยวหรือหลายตาราง โดยชนิดข้อมูลอาจเกี่ยวข้องกัน Structured Query Language (SQL) ทำงานกับ RDBMS และเมื่อต้องการจัดเก็บหรือจัดการปริมาณข้อมูลมหาศาล จะใช้บริการฐานข้อมูลเชิงสัมพันธ์และ SQL

บทความนี้แสดงวิธีกำหนดค่า MySQL บนเซิร์ฟเวอร์ Ubuntu 18.04 รวมถึงการเปิดใช้งานการรับรองความถูกต้อง ตามด้วยการจัดการบริการ ในท้ายที่สุด คุณจะได้เรียนรู้วิธีทดสอบบริการเพื่อยืนยันการกำหนดค่าที่สำเร็จ

ขั้นตอนที่ 1: ติดตั้ง MySQL Client

ติดตั้ง mysql-client เพื่อเชื่อมต่อกับเซิร์ฟเวอร์จากระยะไกล:

sudo apt install mysql-client -y

ตรวจสอบเวอร์ชันไคลเอ็นต์เพื่อยืนยันการติดตั้งสำเร็จ:

mysql -V

ผลลัพธ์:

mysql Ver 8.0.28-0ubuntu0.20.04.3 for Linux on x86_64 ((Ubuntu))

ตอนนี้คุณสามารถใช้คำสั่งต่อไปนี้เพื่อเชื่อมต่อระยะไกลกับเซิร์ฟเวอร์ MySQL:

mysql -u <username> -p <password> -h HOSTNAME_OR_IP

ขั้นตอนที่ 2: ติดตั้ง MySQL Server

ก่อนติดตั้ง MySQL ตรวจสอบให้แน่ใจว่าเซิร์ฟเวอร์ Ubuntu ติดตั้งและกำหนดค่าแล้ว เซิร์ฟเวอร์ Ubuntu 18.04 ค่าเริ่มต้นมี MySQL ล่าสุดรุ่น 5.7 ในคลัง ใช้คำสั่ง apt อัปเดตแพ็กเกจระบบจากคลัง:

sudo apt update

ตอนนี้ใช้คำสั่งต่อไปนี้เพื่อติดตั้งแพ็กเกจ MySQL server:

sudo apt install mysql-server -y

ขั้นตอนที่ 3: กำหนดค่า MySQL

ในยุคที่มีภัยคุกคามไซเบอร์อย่างต่อเนื่อง การเปลี่ยนตัวเลือกเริ่มต้นหลังติดตั้งเซิร์ฟเวอร์สำเร็จเป็นมาตรฐาน ส่วนนี้แนะนำการกำหนดค่าเซิร์ฟเวอร์ MySQL เพื่อกำจัดตัวเลือกเริ่มต้นที่ไม่ปลอดภัย เช่น การเข้าสู่ระบบ root แบบระยะไกล บัญชีผู้ใช้เริ่มต้น ฯลฯ MySQL ทำให้งานนี้ง่ายด้วยการรันสคริปต์ความปลอดภัยเพียงคำสั่งเดียว

sudo mysql_secure_installation

สคริปต์จะถามหลายตัวเลือก ต้องตอบ Yes หรือ No เพื่อเปลี่ยนความปลอดภัยเริ่มต้นของ MySQL เช่น พรอมต์แรกถามว่าต้องการตั้งปลั๊กอินตรวจสอบรหัสผ่านหรือไม่ ตอบ Yes และดำเนินต่อ

พรอมต์ถัดไปถามตั้งรหัสผ่านบัญชี root ของ MySQL คุณจะเห็นว่าการเปิดใช้ปลั๊กอิน Validate Password อนุญาตให้ตั้งความแข็งแรงของรหัสผ่านตาม 3 ระดับนโยบายความปลอดภัยและความยาว

ป้อนหมายเลขที่ต้องการเพื่อตั้งความแข็งแรงของรหัสผ่าน ระบบจะขอตั้งรหัสผ่านใหม่และพิมพ์ซ้ำเพื่อยืนยัน:

วิธีติดตั้งและกำหนดค่า MySQL บน Ubuntu 18.04 แบบละเอียด

หลังตั้งรหัสผ่าน จะแสดงความแข็งแรงและถามว่าต้องการดำเนินต่อหรือไม่

วิธีติดตั้งและกำหนดค่า MySQL บน Ubuntu 18.04 แบบละเอียด

ต่อมา จะถามคำถามเพิ่มเติม:

  1. ลบผู้ใช้ทดสอบแะนอนิมัส (anonymous test user)
  2. ปิดการเข้าสู่ระบบระยะไกลจากผู้ใช้ root
  3. ลบฐานข้อมูลทดสอบ (test databases)
  4. โหลดตารางสิทธิ์ใหม่ (Reload privileges table) เพื่อบันทึกการเปลี่ยนแปลงทั้งหมด

พิมพ์ Y เพื่อดำเนินต่อไปด้วยค่าเริ่มต้นเพื่อตั้งกฎความปลอดภัย

วิธีติดตั้งและกำหนดค่า MySQL บน Ubuntu 18.04 แบบละเอียด

รุ่น MySQL เก่า (ก่อน 5.7.6) ต้องเริ่มต้นโฟลเดอร์ฐานข้อมูลด้วยตนเอง ส่วนรุ่นหลังจากนั้น ให้รันคำสั่ง:

mysqld --initialize

ขั้นตอนที่ 4: ปรับการรับรองความถูกต้องของผู้ใช้ MySQL

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

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

1. การรับรองผู้ใช้ root ด้วยรหัสผ่าน

เพื่อให้รับรองผู้ใช้ผ่านรหัสผ่าน คุณสามารถเปลี่ยนปลั๊กอินจาก "auth_socket" เป็น "mysql_native_password" เพื่อทำเช่นนี้ ให้เปิดหน้าจอพรอมต์ MySQL ด้วยคำสั่ง sudo mysql และตรวจสอบปลั๊กอินที่ใช้สำหรับการรับรองผู้ใช้:

SELECT user, authentication_string, plugin, host FROM mysql.user;
วิธีติดตั้งและกำหนดค่า MySQL บน Ubuntu 18.04 แบบละเอียด

ภาพหน้าจอด้านบนแสดงว่าไคลเอ็นต์ root รับรองตัวเองด้วยปลั๊กอิน "auth_socket" เพื่อเริ่มต้นการรับรองไคลเอ็นต์ root ด้วยรหัสผ่าน ให้ใช้คำสั่ง ALTER USER เพื่อตั้งปลั๊กอิน "mysql_native_password"

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

บันทึกการเปลี่ยนแปลงข้างต้น:

FLUSH PRIVILEGES;

คำสั่ง MySQL "FLUSH PRIVILEGES" บันทึกการเปลี่ยนแปลงในตารางฐานข้อมูลที่ทำโดยคำสั่ง ALTER, INSERT, UPDATE, และ DELETE

ตอนนี้เพื่อยืนยันกลยุทธ์การรับรองที่ใช้โดยแต่ละผู้ใช้ และให้แน่ใจว่าปลั๊กอิน "auth_socket" ไม่ได้ถูกใช้โดยไคลเอ็นต์ root ให้รันคำสั่งอีกครั้ง:

SELECT user,authentication_string,plugin,host FROM mysql.user;
วิธีติดตั้งและกำหนดค่า MySQL บน Ubuntu 18.04 แบบละเอียด

ตอนนี้ผู้ใช้ root สามารถเชื่อมต่อกับเซิร์ฟเวอร์ด้วยการรับรองผ่านคำสั่ง:

sudo mysql -u root -p

2. สร้างผู้ใช้เฉพาะเจาะจง

อีกวิธีหนึ่งในการเปิดใช้งานการรับรองโดยไม่ใช้ mysql_native_password คือการสร้างผู้ใช้เฉพาะเจาะจง ดังนี้:

sudo mysql

สร้างบัญชีใหม่และให้สิทธิ์ทั้งหมด (ALL PRIVILEGES) เพื่อมอบการควบคุมระดับผู้ดูแลให้ผู้ใช้ใหม่ จากนั้นออกจากพรอมต์ MySQL รันคำสั่ง SQL ต่อไปนี้ทีละคำสั่งเพื่อบรรลุเป้าหมาย:

CREATE USER 'ubuntu'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'ubuntu'@'localhost' WITH GRANT OPTION;
exit

จัดการและทดสอบบริการ MySQL ด้วย systemctl

ตั้งค่าบริการให้รันตอนเริ่มต้นเซิร์ฟเวอร์ Ubuntu ด้วยคำสั่ง systemctl enable:

sudo systemctl enable mysql

นอกจากนี้ คุณสามารถทดสอบว่าเซิร์ฟเวอร์ทำงานอยู่ได้โดยพิมพ์:

sudo systemctl status mysql

หรือ

sudo systemctl status mysql.service
วิธีติดตั้งและกำหนดค่า MySQL บน Ubuntu 18.04 แบบละเอียด

บริการจะรันอัตโนมัติหลังติดตั้ง MySQL แต่หากไม่รัน คุณสามารถเริ่มบริการด้วยคำสั่ง:

sudo systemctl start mysql

เริ่มต้นใช้งาน MySQL Server บน Ubuntu

MySQL เป็นระบบจัดการฐานข้อมูลโอเพนซอร์ส ใช้งานง่าย ขยายได้ และทนทาน เป็นส่วนสำคัญของสแต็ก LAMP/LEMP หรือเทคโนโลยีเว็บแอปพลิเคชัน RDBMS นี้เสนอการติดตั้งง่ายและกำหนดค่าสะดวกในรุ่นล่าสุด

บทความนี้แนะนำการสร้างการตั้งค่า MySQL พื้นฐานที่จะช่วยให้คุณเริ่มเรียนรู้การทำงานของ MySQL ได้ รวมถึงมาตรการความปลอดภัยเริ่มต้นที่สำคัญในการกำหนดค่า เพื่อปิดช่องโหว่ในการตั้งค่าเริ่มต้น คุณสามารถเรียนรู้เพิ่มเติมเกี่ยวกับการรักษาความปลอดภัย MySQL ด้วยเคล็ดลับขั้นสูง