ชื่อตาราง marked as crashed and should be repaired
นี่เป็นวิธีแก้ไขอย่างง่าย ด้วยคำสั่งดังต่อไปนี้
#myisamchk -r -q tbl_name
อย่างกรณีของจะได้ผลลัพธืดังต่อไปนี้
- check record delete-chain
- recovering (with sort) MyISAM-table 'hb_log'
Data records: 808714
- Fixing index 1
จากนั้นลองมาตรวจสอบดู พบว่า ถ้าพบว่าข้อมูลในตารางมาครบ ก็เป็นอันจบเรียบร้อย
เล่าเรื่องการทำเว็บไซต์ด้วย Ruby on Rails จ้า พร้อมวิธีการปรับแต่ง Server จำพวก FreeBSD, debian จากประสบการณ์ในการทำงาน Admin
แสดงบทความที่มีป้ายกำกับ mysql แสดงบทความทั้งหมด
แสดงบทความที่มีป้ายกำกับ mysql แสดงบทความทั้งหมด
วันพฤหัสบดีที่ 3 กุมภาพันธ์ พ.ศ. 2554
วันอังคารที่ 22 มิถุนายน พ.ศ. 2553
ย้ายตำแหน่งเก็บ database mysql
ปัญหาที่จะพบอยู่เรื่อยๆสำหรับมือใหม่ที่ใช้ Mysql บน FreeBSD ตำแหน่งที่เก็บฐานข้อมูล ซึ่งเก็บอยู่ที่ /var/db ซึ่ง /var เนี่ย ถ้าตอนลง FreeBSD กดแบ่ง partition แบบ auto มันจะแบ่งเนื้อที่ไว้ค่อนข้างน้อย ซึ่งถ้าใช้งานไปเรื่อยๆ ก็จะเกิดปัญหาทำให้ /var เต็ม ดังนั้น Admin ที่ดีก็ควรจะหมั่นตรวจสอบอยู่เรื่อยๆว่า /var เต็ม หรือไม่ และเต็มด้วยสาเหตุอะไร
หากพบว่ามันเต็มเพราะ ข้อมูล database เริ่มมีขนาดใหญ่ ก็ควรจะย้าย ฐานข้อมูลออกไปเก็บไว้ที่อื่น ซึ่งเป็นไปได้ 2 วิธีคือ
1. ย้ายแบบเปลี่ยน ตำแหน่งเห็บฐานข้อมูล ใน Config ไฟล์ ของ Mysql
2. สร้าง logincal link ขึ้นมาเพื่อชี้ไปยังตำแหน่งเก็บฐานข้อมูลใหม่ (วิธีนี้มันจะไม่แก้ Config ไฟล์)
ในรอบนี้จะอธิบายเป็นวิธีที่ 2 นะครับ ขั้นตอนแรกก่อนอื่นก็ต้องปิด service ก่อนเพราะระหว่างการย้ายไม่ควรจะมีการใช้งาน database จากนั้นก็สร้าง Logical link ด้วยคำสั่ง ln -s
# /usr/local/etc/rc.d/mysql-server stop
# cd /var/db
# mv mysql /usr/local
# ln -s /usr/local/mysql mysql
ย้ายฐานข้อมูลเสร็จแล้วก็ เปลี่ยนสิทธิ์ให้เป็นของ mysql ให้เรียบร้อย
# cd /usr/local
# chown -R mysql mysql <- mysql แรกคือชื่อ user 'mysql' ส่วนอันหลัง คือ ชื่อ โฟลเดอร์
จากนั้นก็เปิด Service ใหม่อีกครั้งแล้วทดลองใช้งาน
# /usr/local/etc/rc.d/mysql-server start
หากพบว่ามันเต็มเพราะ ข้อมูล database เริ่มมีขนาดใหญ่ ก็ควรจะย้าย ฐานข้อมูลออกไปเก็บไว้ที่อื่น ซึ่งเป็นไปได้ 2 วิธีคือ
1. ย้ายแบบเปลี่ยน ตำแหน่งเห็บฐานข้อมูล ใน Config ไฟล์ ของ Mysql
2. สร้าง logincal link ขึ้นมาเพื่อชี้ไปยังตำแหน่งเก็บฐานข้อมูลใหม่ (วิธีนี้มันจะไม่แก้ Config ไฟล์)
ในรอบนี้จะอธิบายเป็นวิธีที่ 2 นะครับ ขั้นตอนแรกก่อนอื่นก็ต้องปิด service ก่อนเพราะระหว่างการย้ายไม่ควรจะมีการใช้งาน database จากนั้นก็สร้าง Logical link ด้วยคำสั่ง ln -s
# /usr/local/etc/rc.d/mysql-server stop
# cd /var/db
# mv mysql /usr/local
# ln -s /usr/local/mysql mysql
ย้ายฐานข้อมูลเสร็จแล้วก็ เปลี่ยนสิทธิ์ให้เป็นของ mysql ให้เรียบร้อย
# cd /usr/local
# chown -R mysql mysql <- mysql แรกคือชื่อ user 'mysql' ส่วนอันหลัง คือ ชื่อ โฟลเดอร์
จากนั้นก็เปิด Service ใหม่อีกครั้งแล้วทดลองใช้งาน
# /usr/local/etc/rc.d/mysql-server start
วันเสาร์ที่ 19 มิถุนายน พ.ศ. 2553
การลง FreeBSD พื้นฐาน STEP 2 - FAMP
พื้นฐานของการลงโปรแกรมเครื่องเซิฟเวอร์ในกรณีทั่วๆไป มักจะต้องลงเว็บเซิฟเวอร์นะครับ ดังนั้นจึงมีสูตรสำหรับลงโปรแกรมเป็น FAMP (FreeBSD Apache, MySQL, PHP) ซึ่งก็ให้ลงเรียงลำดับไปเลย สำหรับตอนนี้เอาแค่ Apache กับ MySQL ก่อน ที่เหลือเอาไว้ตอนหน้า
Apache Web Server
# whereis apache22
apache22: /usr/ports/www/apache22
# cd /usr/ports/www/apache22
# make install clean
เมื่อติดตั้งเสร็จ ให้ไปแก้ไข /etc/rc.conf โดยเพิ่มบรรทัดนี้เข้าไป (เพื่อให้ apache เริ่มสตาร์ท service เมื่อบูตเครื่อง)
----------------------------------------------
apache22_enable="YES"
----------------------------------------------
หากต้องการสตาร์ท Apache Service ด้วยมือให้ใช้คำสั่งต่อไปนี้
# cd /usr/local/etc/rc.d
# ./apache22 [start|stop|restart] <- เลือกเอาอย่างใดอย่างหนึ่ง
หากติดตั้งถูก จะต้องเปิดเว็บเพจทดสอบได้ แล้วพบข้อความว่า "It work!"
http://x.x.x.x <- ip เครื่องเซิฟเวอร์
วิธีการติดตั้ง MySQL
# cd /usr/ports/database/mysql51-server
# make WITH_CHARSET=tis620 WITH_XCHARSET=all \
WITH_COLLATION=tis620_thai_ci WITH_OPENSSL=yes \
install clean
หรือ (กรณีต้องการ ให้ support ndb, ทำเป็น sql api node)
# cd /usr/ports/database/mysql51-server
# make WITH_CHARSET=tis620 WITH_XCHARSET=all \
WITH_COLLATION=tis620_thai_ci WITH_OPENSSL=yes \
WITH_NDB=yes install clean
# cp /usr/local/share/mysql/my-medium.cnf /etc/my.cnf
# chown root:sys /etc/my.cnf
# chmod 0644 /etc/my.cnf
เมื่อติดตั้งเสร็จ ให้ไปแก้ไข /etc/rc.conf โดยเพิ่มบรรทัดนี้เข้าไป (เพื่อให้ mysql เริ่มสตาร์ท service เมื่อบูตเครื่อง)
----------------------------------------------
mysql_enable="YES"
----------------------------------------------
เพื่อความชัวร์ รีสตาร์ท 1 ครั้ง จานั้นให้กำหนดค่า password สำหหรับ root ของ mysql (คนละ root ของ FreeBSD นะ)
# mysqladmin -u root password newpassword
จากนั้น ทดลอง Login โดยใช้คำสั่งดังต่อไปนี้ (-p คือ ให้ขึ้น prompt เพื่อถาม password) ถ้า login สำเร็จก็หมายความว่า การติดตั้ง mysql สมบูรณ์ใช้ง้ายได้แล้วครับ
# mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1 to server version: 3.22.22
Type 'help' for help.
mysql>
Apache Web Server
# whereis apache22
apache22: /usr/ports/www/apache22
# cd /usr/ports/www/apache22
# make install clean
เมื่อติดตั้งเสร็จ ให้ไปแก้ไข /etc/rc.conf โดยเพิ่มบรรทัดนี้เข้าไป (เพื่อให้ apache เริ่มสตาร์ท service เมื่อบูตเครื่อง)
----------------------------------------------
apache22_enable="YES"
----------------------------------------------
หากต้องการสตาร์ท Apache Service ด้วยมือให้ใช้คำสั่งต่อไปนี้
# cd /usr/local/etc/rc.d
# ./apache22 [start|stop|restart] <- เลือกเอาอย่างใดอย่างหนึ่ง
หากติดตั้งถูก จะต้องเปิดเว็บเพจทดสอบได้ แล้วพบข้อความว่า "It work!"
http://x.x.x.x <- ip เครื่องเซิฟเวอร์
วิธีการติดตั้ง MySQL
# cd /usr/ports/database/mysql51-server
# make WITH_CHARSET=tis620 WITH_XCHARSET=all \
WITH_COLLATION=tis620_thai_ci WITH_OPENSSL=yes \
install clean
หรือ (กรณีต้องการ ให้ support ndb, ทำเป็น sql api node)
# cd /usr/ports/database/mysql51-server
# make WITH_CHARSET=tis620 WITH_XCHARSET=all \
WITH_COLLATION=tis620_thai_ci WITH_OPENSSL=yes \
WITH_NDB=yes install clean
# cp /usr/local/share/mysql/my-medium.cnf /etc/my.cnf
# chown root:sys /etc/my.cnf
# chmod 0644 /etc/my.cnf
เมื่อติดตั้งเสร็จ ให้ไปแก้ไข /etc/rc.conf โดยเพิ่มบรรทัดนี้เข้าไป (เพื่อให้ mysql เริ่มสตาร์ท service เมื่อบูตเครื่อง)
----------------------------------------------
mysql_enable="YES"
----------------------------------------------
เพื่อความชัวร์ รีสตาร์ท 1 ครั้ง จานั้นให้กำหนดค่า password สำหหรับ root ของ mysql (คนละ root ของ FreeBSD นะ)
# mysqladmin -u root password newpassword
จากนั้น ทดลอง Login โดยใช้คำสั่งดังต่อไปนี้ (-p คือ ให้ขึ้น prompt เพื่อถาม password) ถ้า login สำเร็จก็หมายความว่า การติดตั้ง mysql สมบูรณ์ใช้ง้ายได้แล้วครับ
# mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1 to server version: 3.22.22
Type 'help' for help.
mysql>
สมัครสมาชิก:
บทความ (Atom)