ท่าน musachi_t ลองนำไปปรับใช้ดูนะครับ
แก้ได้แล้วครับ โดยการ
#service mysql stop
#rm /var/lib/mysql/ib*
#service mysql start
----> เมื่อถึงขั้นตอนนี้ให้เข้าไปดูใน error ใน /var/lib/mysql/localhost.localdomain.err#mysql
--> เพื่อความปลอดภัยของระบบสูงสุด (ว่าเข้าไปนั่น) ก่อนเข้าใช้ mysql ควรใช้คำสั่ง
#mysqladmin -u root password ('yourpassword')
เพื่อป้องกันการเข้าถึง mysql server console เพราะหลังจากใช้คำสั่งดังกล่าวแล้ว จะไม่สามารถเข้าโดยการใช้เพียงแค่คำสั่ง mysql ได้ จะต้องเข้าโดย mysql -u root -p ระบบจะขึ้นมาให้ใส่รหัสผ่านและหลังจากเข้าไปใน mysql console แล้ว ให้ใช้คำสั่ง
mysql> use mysql;
mysql> select host,user,password from user;
ท่านจะพบ user และ host ต่าง ๆหลายรายการ ถ้าใช้ mysqladmin จากข้างบนแล้วจะมีเพียงรายการเดียวที่มีการใส่รหัสผ่านไว้ ถ้าเป็นผม และ แนะนำให้เลยครับว่าให้ลบรายการที่ไม่มีรหัสผ่านออกให้หมด โดย
mysql> delete from user where password = '';
mysql>create database (ชื่อdatabase);
mysql>use (ชื่อdatabase);
---> ใช้ use mysql; ก็ได้mysql>grant all on *.* to user@'%' identified by 'password' with grant option;
เพิ่มอันนี้ด้วย mysql> grant SUPER on *.* to user@'%' identified by 'password';เพื่อความปลอดภัยอีกขั้นหนึ่ง ปกติถ้าใช้ '%' หมายความว่าเครื่องไหนก็ได้ มาจากที่ไหนก็ได้ก็สามารถเข้าถึงระบบได้ ผมจะเปลี่ยนเป็น '192.168.%' แล้วแต่ว่าของใครจะใช้นะครับสามารถปรับตามความเป็นจริงของระบบท่าน ... เพราะถ้าทำแบบนี้แล้วเครื่องที่ไม่ใช่ ip 192.168.xxxx.xxxx ก็จะสามารถป้องกันการเข้ามาป่วน server เราได้อีกระดับหนึ่งครับดูอีกทีให้แน่ใจว่าเราใส่รหัสผ่านครบหรือไม่ก็ให้ใช้
mysql> select host,user,password from user;mysql>exit;
ก่อนใช้คำสั่งนี้ ให้ใช้อันนี้ก่อน mysql> flush privileges; #service mysql restart
ถ้าใช้ คำสั่ง flush privileges แล้วก็ไม่ต้อง restart mysql หรอกครับ สิทธิทุกสิทธิใช้ได้เลยหลังจากนั้นก็ไปนำเข้าข้อมูล
อยากให้ใช้วิธีการ initial import จะดีกว่า ....ส่วนการตั้งค่า my.cnf นั้นเดี๋ยวมาดูอีกที
จากที่ดูใน my.cnf ของท่านมีใส่ไว้สองที่เลย
innodb_file_per_table
innodb_file_per_table = 0
เอาออก 1 อัน แล้วกำหนดเป็น
innodb_file_per_table
หรือ
innodb_file_per_table = 1