MariaDB 10.5 Authentication Plugin – Unix Socket

ในการเข้าใช้งาน MariaDB 10.5 ที่เราติดตั้งก่อนนี้ เมื่อเราติดตั้งเสร็จแล้วสตาร์ทเซอร์วิสของ MariaDB จะเห็นได้ว่าเราจะเข้าใช้งานด้วย user root ได้ปกติ ไม่ต่างกับ MariaDB 5.5 หรือ 10.x ที่ต่ำกว่า 10.4 ตั้งแต่ MariaDB 10.4.3  เป็นต้นมา เขาได้เปลี่ยนวิธีการอนุญาตให้ user ที่ใช้งานอยู่ในระบบปฏิบัติเข้าใช้งาน MariaDB ผ่าน unix_socket ไฟล์ โดยใช้ Authentication Plugin – Unix Socket โดยที่ plugin นี้ได้ถูกติดตั้งมาแล้ว และใช้งานเป็น default ด้วย โดยใช้  'root'@'localhost' เป็น user หลัก ซึ่งสามารถเข้าใช้งานบนเครื่อง localhost ได้โดยไม่ต้องใช้รหัสผ่าน

ปล. unix_socket ไฟล์ ของ MariaDB บน CentOS 8 อยู่ที่ /var/lib/mysql/mysql.sock

เมื่อเราติดตั้งเสร็จแล้วเข้าใช้งาน MariaDB อย่างที่บอกไปแล้วว่า Authentication Plugin – Unix Socket ถูกใช้งานเรียบร้อยโรงเรียน MairaDB ไปแล้ว ถ้าเราจะดูว่าในตาราง User ในฐานข้อมูล mysql มีข้อมูลอย่างไร ก็เป็นดังรูปด้านล่างครับ

ตาราง User ใน ฐาน mysql
ตาราง User ใน ฐาน mysql แบบ unix_socket

ถ้าต้องการกลับไปใช้งานแบบเดิมต้องทำอย่างไร

วิธีการทำอาจมีหลายวิธี แต่ผมแนะนำวิธีที่คิดว่าสะดวกที่สุด ให้รันคำสั่ง

mysql_secure_installation

ตรงคำถาม Switch to unix_socket authentication ให้ตอบ n (no)

mysql_secure_installation
mysql_secure_installation
mysql_secure_installation
mysql_secure_installation
mysql_secure_installation
mysql_secure_installation

ต่อไปแก้ไฟล์ my.cnf โดยเพิ่ม unix_socket=OFF

[mariadb] 
... 
unix_socket=OFF

แล้ว restart service

#systemctl restart mariadb.service

เมื่อเราเข้าใช้งานด้วยคำสั่ง mysql ก็จะเจอ error ดังภาพ ไม่ต้องตกใจครับ เพราะตอนนี้เรากลับมาใช้งานแบบเดิม

MariaDB 10.5 Authentication Plugin - Unix Socket
Plugin ‘unix_socket’ is not loaded

ก็ต้องป้อนคำสั่งให้ถูก mysql -u root -p ใส่รหัสผ่านที่ตั้งตอนรัน mysql_secure_installation ก็จะเข้าใชงานได้ตามปกติ

MariaDB 10.5 Authentication Plugin - Unix Socket

ลองมาดูข้อมูลในตาราง User ในฐานข้อมูล mysql กัน ไม่เหมือนตอนแรกแล้ว

MariaDB 10.5 Authentication Plugin - Unix Socket
mysql_native_pasword

MariaDB 10.5 Authentication Plugin – Unix Socket ก็อำนวยความสะดวกให้กับเรา จะใช้วิธีไหนก็ขึ้นกับผู้ดูแลระบบนะครับ

อันนี้เป็นเรื่องของ user root ที่จะเข้าใช้งานบนเครื่อง localhost ส่วน user ที่จะติดต่อฐานข้อมูลจากเครื่องอื่น หรือเครื่องลูกข่ายจะพูดถึงในบทความถัดไปครับ

อ้างอิง

MariaDB 10.5 Authentication Plugin – Unix Socket

Loading