Client does not support authentication protocol requested by server; consider upgrading MySQL client.
ปัญหานี้เกิดจากการ upgrade MySQL version ไปยัง version 4.1+ เนื่องจากใช้วิธีในการเข้ารหัส user ต่างกัน ใน version ก่อนหน้า 4.1 ใช้การเข้ารหัสด้วยความยาว 16 bytes แต่ใน version หลังจาก 4.1 ใช้ความยาวถึง 4.1 bytes ทำให้การ upgrade version มีปัญหา
การแก้ปัญหาคือต้องไปเปลี่ยนการเข้ารหัสแบบใหม่นั้น ให้กลายเป็นแบบเก่า เพราะว่าเรายังคงใช้เทคโนโลยีอื่นๆในแบบเก่าอยู่ จึงต้องปรับให้ support กัน
วิธีการแก้ปัญหาตามนี้
1. เข้าไปยัง root database ของ MySQL
– ไปที่ command prompt แล้วไปยัง MySQL Directory\bin จากนั้นพิมพ์
ระบบจะร้องขอ password ให้ใส่ลงไปแล้ว enter
– หรือไปที่ start->All Programs->MySQL->MySQL Server 4.1->MySQL Command Link Client
จากนั้นก็ใส่ password

2. ใส่คำสั่งนี้ไปเพื่อ update password ให้เป็นแบบ old password
1
2
3
4
| UPDATE mysql.USER
SET password=OLD_PASSWORD('somepassword')
WHERE USER='someuser'
AND host='somehost'; |
ควรจะทำกับทุก user ที่มี เพราะถ้าไม่ทำ ก็ใช้งานไม่ได้ ลอง select มาดูก่อนก็ได้ ว่า user มีใครบ้าง
1
| SELECT USER FROM mysql.USER |
3. หลังจากนั้นให้ flush table เพื่อ update ข้อมูลที่เพิ่งแก้ไขไป
4. ทดสอบเข้า phpmyadmin เพื่อดูว่าใช้งานได้รึไม่ น่าจะได้นะครับ (ถ้าไม่ได้ก็… ไม่รู้ทำยังไงเหมือนกัน ^ ^)
ขอบคุณ
thaicyberpoint
digitalpeer
หวังว่าข้อมูลนี้จะมีประโยชน์ไม่มากก็น้อยนะครับ
Plesk Control Panel คือเครื่องมือช่วยในการบริหารจัดการ server ให้สามารถดูแลได้ง่าย ใช้ได้ง่าย เข้าใจง่าย แต่ถ้ามีบางครั้งที่เราต้องการใช้งาน plesk ในระดับลึกๆ ที่ตัวหน้าเว็บของมันไม่ support หรือบางครั้งต้องเข้าไปแก้ไขในกรณีที่เกิดข้อผิดพลาดบางอย่าง เราต้องอาศัยการเข้าถึง Database ของ Plesk
ตอนที่เรา create database หรือ create database user สำหรับ db นั้นๆ เวลาเราเรียกดู ไม่ได้หมายความว่า plesk จะเข้าไปยัง database นั้นๆ เพื่อ view user ทั้งหมดให้กับเรา แต่เป็นการที่ plesk ดึงข้อมูลมาจาก database ของตัวมันเอง ถ้าเกิดเราลบ database ที่ plesk เคย create ให้โดยการ remote เข้าไปลบ จะส่งผลให้ข้อมูลใน plesk กับของจริงไม่ตรงกัน ดังนั้นเราจึงต้องทำการแก้ไข database ของ plesk โดยตรง
ขั้นตอนแรกให้เราทดสอบว่า plesk database เป็นชนิดใด (ส่วนใหญ่เป็น MySQL)
ทำตาม link นี้เลยครับ ขั้นตอนการตรวจสอบว่า plesk ใช้ database ชนิดใด
ผมขออนุญาตเจาะลึกแค่ database MySQL เท่านั้นนะครับ เพราะว่าเป็นประสบการณ์ตรง (ในที่นี้เป็น windows server 2003)
1. เปิด command prompt ขึ้นมา (start -> run -> cmd)
2. เข้าไปยัง path ของ plesk MySQL ดังนี้
1
2
| cd %plesk_dir%\Databases\MySQL\bin
cd %plesk_dir%\MySQL\bin |
คิดว่า path ของ database น่าจะเป็นอันใดก็อันหนึ่งจาก 2 บรรทัดนี้ ให้พิมพ์แล้วกด enter เลยครับ
3. พิมพ์คำสั่งนี้ลงไปเพื่อ access เข้า database
1
| mysql -P8306 -uadmin -p<plesk_admin_password> psa |
-uadmin หมายความว่า username ของ plesk คือ admin
-p หมายความว่า plesk_admin_password ก็ต้องเป็น password ของ admin
psa คือชื่อของ plesk database
ดังนั้นถ้า username : admin แล้ว password : aspgodadmin
ก็ควรจะพิมพ์ดังนี้
1
| mysql -P8306 -uadmin -paspgodadmin psa |
โดยที่เครื่องหมาย < และ > ที่ครอบ plesk_admin_password ไม่เกี่ยวข้องด้วยเลย
4. เมื่อ login สำเร็จ ตอนนี้จะเป็นหน้าจอสำหรับใส่คำสั่ง sql ลงไป ให้เข้าเว็บ pleskhacker เพื่อดูว่า plesk database มี table อะไรบ้าง สามารถ query มาดูโครงสร้างเพื่อจัดการกับข้อมูลต่างๆได้

หวังว่าข้อมูลนี้จะเป็นประโยชน์ไม่มากก็น้อยนะครับ