ปัญหาที่ผมเจอช่วงนี้เยอะที่สุดคือปัญหากับ MySQL และการจัดการระหว่าง MySQL ต่าง Version กัน ระหว่าง Client กับ Server. วันก่อนก็เพิ่งได้รู้ว่า MySQL Client Version เก่า จะติดต่อกับ Version ใหม่ไม่ได้ วันนี้ได้รู้รายละเอียดเต็มๆเพิ่มเติมคือ ปัญหาที่ขึ้น
Client does not support authentication protocol
เกิดจากช่วง MySQL 4.1 เป็นต้นมา MySQL เปลี่ยนรูปแบบการ Authentication ให้มันรองรับอะไรมากขึ้น ก็เลยเกิดปัญหาหมดทั้ง PHP, C++ พวก API ที่ใช้ MySQL Client ทั้งหมด. วันนี้ก็ค้นเจอต้นตอและยาแก้ไอรักษาไข้นี้แล้ว วิธีแก้มีอยู่หลายวิธี
- Update MySQL Client เป็น Version ใหม่
- ปรับ Query ของ MySQL Server ใหม่ เวลาสร้างหรือปรับ Password โดยใช้ SQL Query ดังนี้
SET PASSWORD FOR ‘user’@'host’ = OLD_PASSWORD(‘newpassword’); เท่านี้ก็แก้ไขปัญหาได้แล้ว แต่เป็นการจัดการที่ Server ยุ่งยากถ้ามีการปรับเปลี่ยน Username / Password บ่อยๆ
- อีกวิธี สั่ง Run MySQL Daemon ระบุ Arguments เพิ่มเติมคือ –old-password
ในที่สุดก็หาวิธีแก้ปัญหาให้กับทั้งโปรเจคและระบบได้แล้ว
Related Site:
http://dev.mysql.com/doc/refman/5.0/en/old-client.html
ERROR 1267 (HY000): Illegal mix of collations (latin1_bin,IMPLICIT) and (latin1_swedish_ci,IMPLICIT) for operation ‘=’
ปัญหาประหลาด เจอใน MySQL ภายหลังจาก Query แบบ Join Table ง่ายๆไป Search หาในเน็ต พบว่าเป็นเพราะ ความไม่ Compatible ของ MySQL 4.0 , 4.1 และ 3.x ต้องแก้อะไรไม่รู้ยุ่งยากไปหมด สุดท้ายพบว่ามี Patch ออกแล้ว เลยสั่ง Update ตัว MySQL Daemon ภายหลังจาก Update เสร็จก็ใช้งานได้
วิธีการเรียก Perl แบบ Return Regular Expression มาเป็นตัวแปร
$x =~ m/abc/;
จะได้ค่า true ถ้า $x match กับ RegEx abc
เราสามารถเก็บ string ที่ match ได้โดยใส่วงเล็บ ( ) คร่อมส่วนที่ต้องการ โดยจะ return ค่าแบบ list context เช่น
$x = "scratch";
($matched) = $x =~ /r(.)t/;
print $matched; # print "a"
[ Narisa ] แม่เจ้า Search หาเว็บนอกอยู่นาน ไปไปมามามาเจอในเว็บไทย
เมื่อวานคืน กับวันนี้ครึ่งวันนั่งแก้ CSS ของ Site JOMYUT.NET อยู่ ซึ่งไม่รู้ทำไมมันเกิดช่องว่างระหว่างบรรทัด Username กับ Table ด้านล่าง ทั้งๆที่เราเซต Margin , Padding ทั้งหมดเป็น 0 หมดแล้ว แต่ก็ยังมีช่องว่างอยู่ ซึ่งเวลา Login เข้าไปกลับไม่เกิดปัญหา ตอนหลังเลยแกะโค้ดใหม่ ก็ปรากฏว่าเมื่อ Login เข้าไปแล้ว CSS ของตัว Editor HTML มันทำงานด้วย แล้วผมมันเลยทำให้ช่องว่างข้างล่างนั้นหายไป ก็เลยตามเข้าไปแกะ CSS ของ Editor ตัวนั้น พบว่า ไอ้ที่เราทำไม่ได้ตั้งนานนั้น เพราะว่า จริงๆแล้ว ตัวคำสั่ง Form เอง ก็มี Proproties ซ่อนอยู่ด้วย
ภายหลังก็เลยปรับ Proproties เพิ่มใน CSS ของเรา ให้เซต Margin เป็น 0 กับ Border เป็น 0 เลยสำเร็จดังภาพข้างบนนี้แล.