ไม่รู้ว่าได้หรือยังครับ
มาเพิ่มเติมเกี่ยวกับการแก้ไข my.cnf
ปกติหลังจากที่รัน mysql server ได้แล้วระบบจะสร้างไฟล์พวกนี้
ib_logfile0
ib_logfile1
ib_logfile2
ibdata1
ตามค่าที่กำหนดไว้ใน my.cnf (ดูเป็นตัวอย่าง อันนี้เป็นของระบบผมนะครับ ... อย่าเอาไปใส่แทนนะครับ
)
1. ที่เก็บ...ไว้ตามที่กำหนด (อันนี้ขึ้นอยู่กับว่า default ของแต่ระบบ แต่แก้ไขได้ตามที่เราต้องการ ก่อนที่จะรันระบบ)
innodb_data_home_dir = /usr/local/mysql/data
innodb_log_group_home_dir = /usr/local/mysql/data
2. เกี่ยวกับ innodb log sequence ก็ตามนี้
innodb_data_file_path = ibdata1:10M:autoextend
(บางทีอาจเห็นกำหนดเป็น ibdata1:2000M;ibdata2:10M:autoextend)
innodb_log_buffer_size = 16M
innodb_log_file_size = 256M
อันนี้สำคัญครับ เพราะถ้าระบบที่รันไปแล้ว log file ต่างของ innodb ซึ่งก็คือ
ib_logfile0
ib_logfile1
ib_logfile2
จะถูกกำหนดขนาดของไฟล์ไปแล้ว ถ้าเกิดกรณีที่ระบบเกิด crash, restart, shutdown ไม่ว่าจะเกิดจากกรณีใด ๆ ก็ตามระบบจะจำค่าไว้ ถ้าดูจากไฟล์ xxxx.err จะเห็น
อันนี้ตอน shutdown
InnoDB: Shutdown completed; log sequence number
200677771826และถ้าระบบ start ขึ้นมาใหม่ก็จะไปอ่านค่า log sequence จากไฟล์ ib_logfile0, ib_logfile1, ib_logfile2 เทียบกับที่กำหนดใน my.cnf ซึ่งจะต้องเป็นค่าเดิมกับตอนที่ shutdown
InnoDB: 1.1.5 started; log sequence number
200677771826ถ้าไม่เท่ากัน ก็รันไม่ได้ กรณีที่รันไม่ได้อาจเกิดจาก การแก้ไขค่าต่างๆ ตามที่บอก หรือการ copy ไฟล์ my.cnf ของที่อื่นมาแทนที่ของเดิมเลย
ผมไม่ได้บอกว่า ห้ามใช้ของที่ copy มานะครับ
แต่การจะใช้ my.cnf ที่ทุกท่านที่มีน้ำใจให้มานั้นต้องมาดูก่อนว่าระบบเดิมของเราเป็นอย่างไร
ถ้าเป็นการลงระบบแบบ Clean เลยก็คงไม่มีปัญหาอะไร
แต่ถ้ารันระบบไปแล้ว ก่อนนำมาใช้จะต้องไม่ลืมว่า ... variable พวกนี้ต้องแก้ไขให้เป็นตามของเดิมที่เราใช้อยู่
innodb_data_home_dir =
innodb_log_group_home_dir =
innodb_data_file_path =
innodb_log_buffer_size =
innodb_log_file_size =
ถ้าผิดพลาดประการใด ช่วยแก้ไขด้วยนะครับ ... ผมก็เก็บสะสมมาเหมือนกัน