Debian MySQL BUG : ระวังกันหน่อยนะครับ

เมื่อวานหลังจากที่ up-kernel-image จนมองเห็นแรมมากขึ้น
ก็เลยใช้

apt-get update
apt-get upgrade

ซะหน่อย ก็ไม่ได้แปลกใจอะไร เพราะมันก็น่าจะอัพเกรดตามปกติ
แต่วันนี้รู้สึกว่า MySQL Down ไปก็เลยมา Kill แล้วลอง start ใหม่
ปรากฏว่าไม่ขึ้นครับ พร้อมแจ้ง Error กลับมา ดังนี้

[quote]etc/init.d/mysql start
Starting MySQL database server: mysqld…failed.

เห็นถามผมทาง msn … คนกำลังมึ่น แก้ปัญหาได้แล้วค่อยยังชั่วอ่านะ

โปรดสังเกตุ (สักหน่อย)

MySQL Client Version กับ MySQL Server มันคนละ version กัน (ใน debian sarg)
ฉะนั้น… ก่อนทำการ upgrade mysql โปรดระลึกไว้เสมอว่า

เราใช้ mysql client version 4.0.xx
แต่ mysql server version 4.1.xx

ฉะนั้น… ระวังในการ upgrade mysql เพราะมันจะติดปัญญหา authen password ที่ข้าม version กันระหว่าง 4.0xx กับ 4.1.xx

หากจะ up ไป 5.0.xx คงจะวุ่นวายอย่างที่เห็นครับ

Welcome to the MySQL monitor.

ถามพี่แต่ยังไม่ได้คำตอบอ่ะครับ เลยต้องสู้ชีวิตต่อไป

[quote]www:~# 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

ผมเองล่ะ

" มีทางเลือก 2 ทาง "

  1. backward version to mysql-client 4.0.xx

  2. upgrade mysql-client & server to 5.0.x full version

ทางเลือกที่สองจะต้องไป upgrade php ในส่วนของ mysql-php ด้วยครับ

dpkg -l
ii

หลังจากที่ทำการ downgrade ลงมาเป็น mysql4.0.24 แล้วยังพบปัญหาว่า start ไม่ได้ ตาม error นี้

tail -f /var/log/syslog

Aug 23 20:11:40 www mysqld_safe[16615]: started
Aug 23 20:11:40 www mysqld[16620]: 060823 20:11:40 /usr/sbin/mysqld: Can’t open file: ‘user.MYI’. (errno: 145)
Aug 23 20:11:40 www mysqld[16620]: 060823 20:11:40 Fatal error: Can’t open privilege tables: Can’t open file: ‘user.MYI’. (errno: 145)
Aug 23 20:11:40 www mysqld[16620]: 060823 20:11:40 Aborting
Aug 23 20:11:40 www mysqld[16620]:
Aug 23 20:11:40 www mysqld[16620]: 060823 20:11:40 /usr/sbin/mysqld: Shutdown Complete
Aug 23 20:11:40 www mysqld[16620]:
Aug 23 20:11:40 www mysqld_safe[16622]: ended
Aug 23 20:11:46 www /etc/init.d/mysql[16688]: 0 processes alive and ‘/usr/bin/mysqladmin --defaults-file=/etc/mysql/debian.cnf ping’ resulted in
Aug 23 20:11:46 www /etc/init.d/mysql[16688]: ^G/usr/bin/mysqladmin: connect to server at ‘localhost’ failed
Aug 23 20:11:46 www /etc/init.d/mysql[16688]: error: ‘Can’t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld.sock’ (2)’
Aug 23 20:11:46 www /etc/init.d/mysql[16688]: Check that mysqld is running and that the socket: ‘/var/run/mysqld/mysqld.sock’ exists!

ก็แก้ด้วยการเช็ค myisamchk -o *.MYI โดยเข้าไปที่ /var/lib/mysql/mysql

[quote]www:/# cd /var/lib/mysql/mysql
www:/var/lib/mysql/mysql# ls -l
total 8296
-rw-rw----

วัดดวงกันเลยครับ

  1. backup database ทั้ง tar file และ mysqldump เก็บไว้ทั้งก้อน
  2. remove, uninstall mysqll ออกให้หมด

ลง mysql ใหม่ระบุ apt-get version mysql ตามที่ต้องการ

(ปาดเหงื่อแน่ๆ) :blink:

[ edit ]
เออ…ตอบช้าไปอีกแร๊ะ

DataBase myMembers : 32282+ Users เองอ่าพี่ Backup กันอ้วกแน่ๆ
เท่าที่ตรวจสอบน่าจะ Error จาก mySQL น่าจะเกิดจากบางส่วน
ที่ได้ใช้งานบน mysql 5 ทำให้เมื่อ Downgrade ลงมา
จึงเกิด Error แต่คิดว่าคงไม่เยอะมากครับ แฮะๆ เดี๋ยวลองหาทางแก้ไขเพิ่มเติมอีกหน่อย
เพราะมัน chk ไม่ได้เลย /folder/user.MYI แต่ถ้า chk คงเป้นวันได้

ปุ๊ก

ขอให้พระคุ้มครอง…

ใช้ Mysql Dump ให้ Support mysql 4 ได้ครับ

–compatible=name

Produce output that is more compatible with other database systems or with older MySQL servers. The value of name can be ansi, mysql323, mysql40, postgresql, oracle, mssql, db2, maxdb, no_key_options, no_table_options, or no_field_options. To use several values, separate them by commas

เพิ่มเติม http://dev.mysql.com/doc/refman/5.0/en/mysqldump.html

mysqlcheck -r --all-databases

ได้ป่ะครับ (ถามเผื่อว่ายังไม่ได้ลองทำ เพราะ myisamchk มักจะใช้หลัง mysqlcheck)