Author Topic: เรียกหา unix_socket ในการยืนยันตัวตนไม่เจอ บน mysql process  (Read 2965 times)

golfreeze

  • Administrator
  • Hero Member
  • *****
  • Posts: 2140
    • View Profile
    • นั่งสมาธิ สติปัฏฐานสี่ พาเที่ยววัด แนะนำวัด แจกcd ธรรมะฟรี
    • Email
The "unix_socket" has been called by mysql authentication process (maybe related to a partial migration of database to mariadb, now removed). To get all stuff back working go su:

สำหรับปัญหาลักษณะนี้อาจเกินขึ้นได้จากสาเหตุหลักๆ คือการ uninstall mysql server แล้วทำการลงเป็น mysql version ใหม่ครับ
ซึ่งอาจจะมีการลบรูปแบบการยืนยันตัวตนออกไป ทำให้ไม่สามารถสั่ง #mysql -uroot -p
แล้วจะขึ้นข้อความดังนี้
Enter password:
ERROR 1524 (HY000): Plugin 'unix_socket' is not loaded

วิธีแก้ไขนั้นไม่ยากครับ ถ้าหากมีการใช้งานพวก configure galera.cnf อยู่ด้วยให้ทำการ move เป็นดังนั้นก่อนนะครับ
#mv galera.cnf galera.cnf.ori

แล้วทำการ stop mysql
#systemctl stop mysql

ทำการเข้าแบบ by pass
#mysqld_safe --skip-grant-tables &

หลังจากนั้นทำการ login
#mysql -uroot

ใช้ฐานข้อมูล mysql
>use mysql;

ทำการ reset password ใหม่อีกรอบ
update user set password=PASSWORD("mynewpassword") where User='root';

ทำการเลือกใช้ plugin authen
update user set plugin="mysql_native_password";

quit;

แล้วทำการ ลบ process id ของ mysqld_safe ออกจากระบบ
แล้วทำการ start mysql แบบปกติอีก 1 รอบครับ
#/etc/init.d/mysql stop
#kill -9 $(pgrep mysql)
#/etc/init.d/mysql start

แล้วทำการ login ปกติด้วยรหัสที่ตั้งค่าใหม่ครับ
#mysql -uroot -p

ก็จะสามารถเข้าได้ปกติ ครับผม : ) ;)