ปัญหา MySQL ในเดเบียน

อัดรูปดิจิตอล ทำสมุดภาพของคุณเอง
รอรับได้. ท่องเที่ยว แต่งงาน ฯลฯ

www.tanabutr.co.th/photobook


หลังจากที่เมื่อวานอัปเกรดเดเบียนที่อยู่ใน coLinux ด้วย apt-get upgrade วันนี้มาเปิดเว็บที่สร้างด้วย Drupal แล้วมันบอกว่าต่อกับ MySQL ไม่ติด. เลยต้องไปตรวจสอบว่าโปรเซสว่า mysqld มันทำงานอยู่หรือเปล่า. ปรากฏว่าไม่ทำงานซึ่งมันก็แปลกเลยต้องสตาร์ทใหม่ด้วยมือ

# /etc/init.d/mysql start
Starting MySQL database server: mysqld...failed.
        Please take a look at the syslog.
/usr/bin/mysqladmin: connect to server at 'localhost' failed
error: 'Can't connect to local MySQL server through socket '/var/run/mysqld/mysq
ld.sock' (2)'
Check that mysqld is running and that the socket: '/var/run/mysqld/mysqld.sock'
exists!

รันไม่ขึ้น. จำได้เว่า error message อันนี้มันคุ้นเคยเห็นมีคนโพสไว้ที่ webboard ของ LTN ก็มาเจอด้วยตัวเองครั้งนี้แหละ. ถ้าดูอาการตามเนื้อผ้าจาก error ก็พอจะรู้ว่า MySQL ไม่สามารถติดต่อกับ socket (unix domain socket) ไฟล์ /var/run/mysqld/mysqld.sock แถมยังบอกให้ตรวจสอบดูอีกว่าไฟล์ซ็อกเก็ตนั้นมีอยู่จริงหรือไม่. ไปตรวจสอบดูแล้วก็ไม่มีไฟล์ซ็อกเก็ตนั้น จะไปสร้างไฟล์ซ็อกเก็ตเองก็กระไรอยู่เพราะปรกติโปรแกรมเซอร์เวอร์น่าจะสร้างให้, ส่วนไคล์เอ็นต์ก็จะเป็นแค่ตัวที่ไปติดต่อกับซ็อกเก็ตนั้น. ใน error บอกให้ไปดูที่ syslog ซึ่งก็คือไฟล์ /var/log/syslog.

Sep 27 01:03:21 www mysqld_safe[1939]: started
Sep 27 01:03:21 www mysqld[1943]: 050927  1:03:21 /usr/sbin/mysqld: unknown vari
able 'old_passwords=1'
Sep 27 01:03:21 www mysqld[1943]:
Sep 27 01:03:21 www mysqld_safe[1945]: ended
Sep 27 01:03:27 www /etc/init.d/mysql[2008]: 0 processes alive and '/usr/bin/mys
qladmin --defaults-file=/etc/mysql/debian.cnf ping' resulted in
Sep 27 01:03:27 www /etc/init.d/mysql[2008]: ^G/usr/bin/mysqladmin: connect to s
erver at 'localhost' failed
Sep 27 01:03:27 www /etc/init.d/mysql[2008]: error: 'Can't connect to local MySQ
L server through socket '/var/run/mysqld/mysqld.sock' (2)'
Sep 27 01:03:27 www /etc/init.d/mysql[2008]: Check that mysqld is running and th
at the socket: '/var/run/mysqld/mysqld.sock' exists!
Sep 27 01:03:27 www /etc/init.d/mysql[2008]:

ก็จะเห็นว่ามี error คล้ายๆกัน แต่บรรทัดที่น่าสนใจคือ unknown variable 'old_passwords=1'. ลองไป search Google เพิ่มเติมเจอว่าเป็น bug ของ MySQL ในเดเบียน. คอมเมนต์เอาต์บรรทัด old=passwords ที่ไฟล์ /etc/mysql/my.cnf แล้วก็จะหาย, รัน MySQL ได้เป็นปรกติ. การดู error ให้ดีและสำรวจให้เป็นก็แก้ปัญหาได้. หวังว่าบั้กนี้จะได้รับการแก้ไขโดยเร็ว.

อีกอย่างหนึ่งคือ mysql-server ที่มีปัญหาในเครื่องคือ 4.0.24-10 ครับ.

# dpkg -l mysql-server
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Installed/Config-files/Unpacked/Failed-config/Half-installed
|/ Err?=(none)/Hold/Reinst-required/X=both-problems (Status,Err: uppercase=bad)
||/ Name           Version        Description
+++-==============-==============-============================================
ii  mysql-server   4.0.24-10      mysql database server binaries

Comments: blogger