ในการเข้าใช้งาน 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 มีข้อมูลอย่างไร ก็เป็นดังรูปด้านล่างครับ
ถ้าต้องการกลับไปใช้งานแบบเดิมต้องทำอย่างไร
วิธีการทำอาจมีหลายวิธี แต่ผมแนะนำวิธีที่คิดว่าสะดวกที่สุด ให้รันคำสั่ง
mysql_secure_installation
ตรงคำถาม Switch to unix_socket authentication ให้ตอบ n (no)
ต่อไปแก้ไฟล์ my.cnf โดยเพิ่ม unix_socket=OFF
[mariadb] ... unix_socket=OFF
แล้ว restart service
#systemctl restart mariadb.service
เมื่อเราเข้าใช้งานด้วยคำสั่ง mysql ก็จะเจอ error ดังภาพ ไม่ต้องตกใจครับ เพราะตอนนี้เรากลับมาใช้งานแบบเดิม
ก็ต้องป้อนคำสั่งให้ถูก mysql -u root -p ใส่รหัสผ่านที่ตั้งตอนรัน mysql_secure_installation ก็จะเข้าใชงานได้ตามปกติ
ลองมาดูข้อมูลในตาราง User ในฐานข้อมูล mysql กัน ไม่เหมือนตอนแรกแล้ว
MariaDB 10.5 Authentication Plugin – Unix Socket ก็อำนวยความสะดวกให้กับเรา จะใช้วิธีไหนก็ขึ้นกับผู้ดูแลระบบนะครับ
อันนี้เป็นเรื่องของ user root ที่จะเข้าใช้งานบนเครื่อง localhost ส่วน user ที่จะติดต่อฐานข้อมูลจากเครื่องอื่น หรือเครื่องลูกข่ายจะพูดถึงในบทความถัดไปครับ
อ้างอิง
- https://mariadb.com/kb/en/authentication-plugin-unix-socket/
- https://mariadb.com/kb/en/authentication-from-mariadb-104/
MariaDB 10.5 Authentication Plugin – Unix Socket