วิธีการติดตั้ง MySQL 8.0 บน AlmaLinux 9


MySQL เป็นระบบจัดการฐานข้อมูลเชิงสัมพันธ์บนพื้นฐานของ SQL (ภาษาคิวรีที่มีโครงสร้าง). เป็นหนึ่งในซอฟต์แวร์ฐานข้อมูลที่ใช้กันอย่างแพร่หลายมากที่สุดสำหรับแอพพลิเคชั่นที่มีชื่อเสียงหลายตัว MySQL ใช้สำหรับคลังข้อมูล อีคอมเมิร์ซ และแอปพลิเคชันการบันทึก แต่การจัดเก็บและจัดการฐานข้อมูลบนเว็บเป็นคุณสมบัติที่ใช้บ่อยที่สุด

ในบทช่วยสอนต่อไปนี้ คุณจะได้เรียนรู้วิธีติดตั้ง MySQL 8.0 บน AlmaLinux 9 โดยใช้เทอร์มินัลบรรทัดคำสั่งพร้อมคำแนะนำเกี่ยวกับวิธีรักษาความปลอดภัยบริการ MySQL อัปเดต และลบหากจำเป็น

อัปเดต AlmaLinux

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

sudo dnf upgrade --refresh -y

ถัดไป คุณมีสองตัวเลือก ติดตั้ง MySQL มาตรฐานจากสตรีมแอป หรือติดตั้ง MySQL 8.0 เวอร์ชันล่าสุดที่เสถียรซึ่งเรียกว่าเวอร์ชันชุมชน

ติดตั้ง MySQL 8.0 – วิธี Appstream

MySQL 8.0 พร้อมใช้งานเป็นตัวเลือกเริ่มต้นใน AlmaLinux เรียกใช้คำสั่งต่อไปนี้เพื่อติดตั้ง



sudo dnf install mysql mysql-server -y

แม้ว่าคุณจะสามารถรวมตัวเลือกได้ค่อนข้างน้อย แต่ตัวเลือกยอดนิยมอีกตัวหนึ่งคือการติดตั้งชุดเครื่องมือสำหรับนักพัฒนาซอฟต์แวร์และการติดตั้ง MySQL แบบมาตรฐาน

โปรดทราบว่านี่สำหรับนักพัฒนาเท่านั้น ไม่ใช่ผู้ใช้ CMS/เว็บเซิร์ฟเวอร์

sudo dnf install mysql mysql-server mysql-devel -y

เมื่อการติดตั้งเสร็จสิ้น ให้ตรวจสอบการติดตั้งโดยใช้ปุ่ม -version คำสั่ง

mysql --version

จากนั้นเปิดใช้งาน MySQL 8 โดยใช้คำสั่งต่อไปนี้

sudo systemctl enable mysqld --now

คำสั่งดังกล่าวจะเริ่มต้น MySQL ในเซสชันปัจจุบันของคุณ และสำหรับระบบในอนาคต ให้รีสตาร์ทโดยอัตโนมัติ

ติดตั้ง MySQL 8.0 – MySQL Community Edition (ล่าสุด)

สำหรับผู้ใช้ที่ต้องการ MySQL เวอร์ชันล่าสุด 8.0 หรือเวอร์ชันอื่นๆ ขั้นตอนต่อไปนี้จะบรรลุเป้าหมายนี้



ขั้นแรก ใช้คำสั่งต่อไปนี้เพื่อนำเข้า RPM อย่างเป็นทางการของชุมชน MySQL 8.0

sudo rpm -ivh https://dev.mysql.com/get/mysql80-community-release-el9-1.noarch.rpm

ถัดไป ติดตั้งเซิร์ฟเวอร์ชุมชน MySQL 8 คำสั่งต่อไปนี้จะปิดใช้งานเวอร์ชัน App Stream และเปิดใช้งานรุ่นชุมชน

sudo dnf install --disablerepo=appstream mysql-community-server -y

ตัวอย่างผลลัพธ์:

วิธีการติดตั้ง MySQL 8.0 บน AlmaLinux 9

ดังที่กล่าวมา คุณกำลังติดตั้งโดยตรงจากที่เก็บ MySQL RPM

จากนั้นยืนยันรุ่นของเวอร์ชัน ซึ่งจะตรวจสอบความสำเร็จของการติดตั้งด้วย

mysql --version

ตัวอย่างผลลัพธ์:



mysql  Ver 8.0.30 for Linux on x86_64 (MySQL Community Server - GPL)

จากนั้นเปิดใช้งาน MySQL 8.0 โดยใช้คำสั่งต่อไปนี้

sudo systemctl enable mysqld --now

คำสั่งดังกล่าวจะเริ่มต้น MySQL ในเซสชันปัจจุบันของคุณ และสำหรับระบบในอนาคต ให้รีสตาร์ทโดยอัตโนมัติ

ตรวจสอบสถานะของ MySQL 8.0

โปรแกรมติดตั้งจะเริ่มต้นบริการ MySQL เริ่มต้นของคุณโดยอัตโนมัติและกำหนดค่าให้เริ่มต้นโดยอัตโนมัติเมื่อเริ่มต้นระบบ

ตรวจสอบว่าบริการ MySQL ของคุณใช้งานได้หลังการติดตั้ง พิมพ์ต่อไปนี้ คำสั่งสถานะ systemctl.

systemctl status mysqld

ตัวอย่างผลลัพธ์:

วิธีการติดตั้ง MySQL 8.0 บน AlmaLinux 9

สำหรับการติดตั้งใหม่ ทุกอย่างควรอยู่ในสถานะปกติ ดำเนินการรักษาความปลอดภัยอินสแตนซ์ MySQL ของคุณ



ด้านล่างนี้คือคำสั่งระบบทั่วไปบางส่วนที่คุณต้องการเพื่อจัดการบริการ MySQL systemd ของคุณ

หยุดบริการ MySQL:

sudo systemctl stop mysqld

เริ่มบริการ MySQL:

sudo systemctl start mysqld

ปิดใช้งานบริการ MySQL เมื่อเริ่มต้นระบบ:

sudo systemctl disable mysqld

เปิดใช้งานบริการ MySQL เมื่อเริ่มต้นระบบ:

sudo systemctl enable mysqld

เริ่มบริการ MySQL ใหม่:



sudo systemctl restart mysqld

วิธีรักษาความปลอดภัย MySQL 8.0

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

ขั้นแรก ใช้คำสั่งต่อไปนี้เพื่อเรียกใช้ (mysql_secure_installation)

sudo mysql_secure_installation

ข้ามคำสั่งรหัสผ่านชั่วคราว อ่านเคล็ดลับด่วนนี้หากคุณมีปัญหา

สำหรับผู้ใช้ที่ได้รับข้อผิดพลาดต่อไปนี้ซึ่งติดตั้งเวอร์ชันชุมชน MySQL 8.0

Error: Access denied for user 'root'@'localhost' (using password: NO)

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

sudo grep 'temporary password' /var/log/mysqld.log

ตัวอย่างผลลัพธ์:



2022-08-13T06:46:17.111312Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: wzP8ya8ZPn?g

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

ถัดไป คุณจะได้รับแจ้งให้ใส่รหัสผ่านรูทของคุณ จากนั้นคุณจะเห็นคำถามเกี่ยวกับ VALIDATE PASSWORD COMPONENT สิ่งนี้เกี่ยวข้องกับการกำหนดการตรวจสอบความซับซ้อนของรหัสผ่าน ส่วนใหญ่ ค่าเริ่มต้นจะถูกต้อง

จากนั้นทำตามด้านล่าง:

  • การตั้งรหัสผ่านสำหรับ ราก บัญชี
  • การตั้งรหัสผ่านสำหรับบัญชี
  • การลบบัญชีรูทที่สามารถเข้าถึงได้จากภายนอก โลคัลโฮสต์
  • การลบบัญชีผู้ใช้ที่ไม่ระบุชื่อ
  • การลบฐานข้อมูลทดสอบ สามารถเข้าถึงได้โดยค่าเริ่มต้นสำหรับผู้ใช้ที่ไม่ระบุชื่อ

ระวัง; คุณใช้ (Y) เพื่อลบทุกอย่าง นอกจากนี้ หากต้องการ คุณสามารถรีเซ็ตรหัสผ่านรูทของคุณโดยสร้างรหัสผ่านใหม่ คุณสามารถละเว้นได้หากต้องการ เนื่องจากคุณได้ตั้งค่าไว้ระหว่างการติดตั้งครั้งแรกด้วยป๊อปอัป

ตัวอย่าง:

[joshua@almalinux-9 ~]$ mysql_secure_installation

Securing the MySQL server deployment.

Enter password for user root: 

The existing password for the user account root has expired. Please set a new password.

New password: <---- SET NEW PASSWORD

Re-enter new password: <---- RE-ENTER NEW PASSWORD

Re-enter new password: 
The 'validate_password' component is installed on the server.
The subsequent steps will run with the existing configuration
of the component.
Using existing password for root.

Estimated strength of the password: 100 
Change the password for root ? ((Press y|Y for Yes, any other key for No) : Y <---- Type Y then press the ENTER KEY (SKIP IF YOU ALREADY JUST SET)

New password: 

Re-enter new password: 

Estimated strength of the password: 100 
Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : Y <---- Type Y then press the ENTER KEY.
By default, a MySQL installation has an anonymous user,
allowing anyone to log into MySQL without having to have
a user account created for them. This is intended only for
testing, and to make the installation go a bit smoother.
You should remove them before moving into a production
environment.

Remove anonymous users? (Press y|Y for Yes, any other key for No) : Y <---- Type Y then press the ENTER KEY.
Success.


Normally, root should only be allowed to connect from
'localhost'. This ensures that someone cannot guess at
the root password from the network.

Disallow root login remotely? (Press y|Y for Yes, any other key for No) : Y <---- Type Y then press the ENTER KEY.
Success.

By default, MySQL comes with a database named 'test' that
anyone can access. This is also intended only for testing,
and should be removed before moving into a production
environment.


Remove test database and access to it? (Press y|Y for Yes, any other key for No) : Y <---- Type Y then press the ENTER KEY.
 - Dropping test database...
Success.

 - Removing privileges on test database...
Success.

Reloading the privilege tables will ensure that all changes
made so far will take effect immediately.

Reload privilege tables now? (Press y|Y for Yes, any other key for No) : Y <---- Type Y then press the ENTER KEY.
Success.

All done! 

วิธีอัปเดต/อัปเกรด MySQL 8.0

เนื่องจากทั้งสองเวอร์ชันได้รับการติดตั้งโดยใช้เทอร์มินัลคำสั่งที่มีที่เก็บ DNF ให้ใช้คำสั่งอัปเดตทั่วไปดังต่อไปนี้เพื่อตรวจสอบการอัปเดต



sudo dnf update --refresh

วิธีลบ (ถอนการติดตั้ง) MySQL

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

sudo dnf autoremove mysql mysql-server -y

ผู้ใช้ที่ต้องการลบ Community Edition เพื่อปรับขนาดกลับ เช่น เวอร์ชันแอปสตรีมหรือลบซอฟต์แวร์ เหมาะอย่างยิ่งสำหรับการลบที่เก็บ RPM ทั้งหมด

sudo rm /etc/yum.repos.d/mysql-community*

ความคิดเห็นและข้อสรุป

MySQL 8 ทำงานได้ดีกว่าโมดูลก่อนหน้าสำหรับปริมาณงานการอ่าน/เขียน ปริมาณงานที่เกี่ยวข้องกับ I/O และปริมาณงานที่มีความขัดแย้งสูง ผู้ใช้ MySQL เวอร์ชันเก่าควรพิจารณาอัปเกรด เนื่องจากประสิทธิภาพที่เพิ่มขึ้นนั้นคุ้มค่า



ไม่ใช่สิ่งที่คุณกำลังมองหา? ลองค้นหาบทช่วยสอนเพิ่มเติม

แสดงความคิดเห็น