กรุณาปิด โปรแกรมบล๊อกโฆษณา เพราะเราอยู่ได้ด้วยโฆษณาที่ท่านเห็น
Please close the adblock program. Because we can live with the ads you see


คำถาม ย้ายโฮสต์ใหม่ครับ เจอปัญหาหนักมากเลยครับ

  • เริ่มกระทู้โดย เริ่มกระทู้โดย jr9th
  • วันที่เริ่มกระทู้ วันที่เริ่มกระทู้

jr9th

Registered
ผมทำการย้ายจากโฮสต์เก่า มาที่ใหม่ ซึ่งไม่รู้ว่า ที่เก่าใช้อะไร ระบบไหนครับ

1. copy ไฟล์ทั้งหมด ผ่าน FTP ลงมาเก็บไว้ที่เครื่อง
2. ตามไปเก็บไฟล์ sql ของ ฟอรั่ม มาไว้ที่เครื่อง (ผมดึงข้อมูลมาจาก ฮาร์ดดิสก์ เครื่องเซิฟเวอร์เลยครับ)

3. เมื่อได้ไฟล์ sql แล้ว ผมก็ได้ทำการ ก็อปปี้โฟลเดอร์ นั้น ลงไปไว้ที่ AppServ แล้วเปิดเข้า phpmyadmin เลยครับ
4. ผมลองเปิดไฟล์ ที่ copy มาแล้ว มันแสดงผลภาษาไทยเป็น ?????????

5. พวก avatar และก็ไฟล์รูป ที่ได้ทำการ attachment ก็ไม่แสดงผลครับ

เคยอัพขึ้นโฮสต์ ไปแล้ว อาการเหมือนกันเลยครับ เลยไปไหนต่อไม่ถูกเลยครับ
ผมควรจะเริ่มต้นแก้ไขกระบวนการนี้อย่างไรดีครับผม
(ปัจจุบัน เนื่องจากยังเปิดเองใน localhost ไม่ได้เลยไม่ได้อัพขึ้นโฮสใหม่น่ะครับ)

หมายเหตุ ฟอรั่ม มันเป็นเวอร์ชั่น 3.0 เองครับ และใน db บนโฮสเก่า มันเป็น latin แต่พอ ก๊อปปี้ มาทั้งโฟลเดอร์ ใส่ใน localhost มันกลับเป็น TIS620 น่ะครับ

เมื่อก่อน ตอนอยู่โฮสเก่า ใช้การ ENCODING จึงเป็นภาษาไทยแต่ตอนนี้ ไม่เปลี่ยนเลยครับพี่

มีคำแนะนำไหมครับ

ขอบคุณครับ
 
ปัญหาคือ sql ครับแนะนำให้ export เอาครับไม่ควร copy foleder

แล้วใช้การ import เอา

ปล db สร้างใหม่ตั้งเป็น latin ด้วย
 

กรุณาปิด โปรแกรมบล๊อกโฆษณา เพราะเราอยู่ได้ด้วยโฆษณาที่ท่านเห็น
Please close the adblock program. Because we can live with the ads you see


คือ db ที่ผมไป ดูด มามันกลายเป็น ฮาร์ดดิสก์ที่กำลังจะโละทิ้งแล้วครับ

หลังจาก mount ได้ ผมก็เลย ทำการ ก๊อปปี้ มาเลยครับ
ไม่ทราบว่า พอจะมีวิธีแก้ผัญหาแบบนี้ไหมครับพี่ ถ้าจะให้ export ออกมาจากฐานข้อมูล บนโฮสเก่า มันไม่สามารถทำได้แล้วครับ มัน ออฟไลน์ไปแล้วครับผม

ตอนนี้ผมมีแค่ ไฟล์ MYD,FRM อะไรพวกนี้ ยกโฟลเดอร์น่ะครับ
เลยไปไหนต่อไม่ถูกเลยครับพี่
 
คือ db ที่ผมไป ดูด มามันกลายเป็น ฮาร์ดดิสก์ที่กำลังจะโละทิ้งแล้วครับ

หลังจาก mount ได้ ผมก็เลย ทำการ ก๊อปปี้ มาเลยครับ
ไม่ทราบว่า พอจะมีวิธีแก้ผัญหาแบบนี้ไหมครับพี่ ถ้าจะให้ export ออกมาจากฐานข้อมูล บนโฮสเก่า มันไม่สามารถทำได้แล้วครับ มัน ออฟไลน์ไปแล้วครับผม

ตอนนี้ผมมีแค่ ไฟล์ MYD,FRM อะไรพวกนี้ ยกโฟลเดอร์น่ะครับ
เลยไปไหนต่อไม่ถูกเลยครับพี่

บีบไฟล์ทั้งหมดแล้วมีขนาดเท่าไหร่
 
โฟลเดอร์ที่ผม ก๊อปปี้มาขนาด 380MB ครับ
ถ้าลอง Export ออกมาแล้ว มันจะมีขนาด 670MB ได้ครับ

ถ้าผม Zip โฟลเกอร์ทั้งก้อนนี้ก็จะได้ขนาด 323MB ครับ

(คิดว่า ขนาดที่ใหญ่ๆ นี้ น่าจะเป็นพวกไฟล์ attachment รูปภาพน่ะครับ เพราะดูจาก ตารางนั้น ใหญ่ กว่าชาวบ้านเขาเลยครับผม)
 
โฟลเดอร์ที่ผม ก๊อปปี้มาขนาด 380MB ครับ
ถ้าลอง Export ออกมาแล้ว มันจะมีขนาด 670MB ได้ครับ

ถ้าผม Zip โฟลเกอร์ทั้งก้อนนี้ก็จะได้ขนาด 323MB ครับ

(คิดว่า ขนาดที่ใหญ่ๆ นี้ น่าจะเป็นพวกไฟล์ attachment รูปภาพน่ะครับ เพราะดูจาก ตารางนั้น ใหญ่ กว่าชาวบ้านเขาเลยครับผม)

host ใหม่ที่ไหนครับ

เชคได้มั้ย ว่า mysql version อะไร

ปัญหาคือ db charset ไม่ตรงกัน ต้องทำให้ db ในมือเป้น .sql ก่อนแล้ว dump ออกมาอับขึ้น host

ทางแก้มี แปลง db ให้ตรงกับ host ใหม่ หรือทำให้ sql ในhost ตรงกับ db
 
1. โฮสที่ใหม่เป็น MySQL 5 ครับ (ที่เก่า ผมโทรฯไปถามสดๆ มาได้ความว่า เป็น 4)
2. ทำให้ db ในมือเป็น .sql (ถ้าหมายถึง การ Export ผมทำได้ครับ เพียงแต่ลองสังเกตุดูแล้วครับ ไฟล์ที่ Export ออกมา มันเขียนเป็น Defaula Charset TIS620 เลยน่ะครับ)

3. ขอบคุณสำหรับคำแนะนำครับ
4. ตอนนี้กำลัง พยายามมั่วทุกทาง แบบไม่รู้ไปทางไหนดี เริ่มต้น ยังไงดี ฮ่าๆ

5. ถ้ารู้ว่าพอมีทางแก้ไข ผมก็อุ่นใจขึ้นมาสักหน่อยแล้วครับ ขอบคุณครับผม
 
1. โฮสที่ใหม่เป็น MySQL 5 ครับ (ที่เก่า ผมโทรฯไปถามสดๆ มาได้ความว่า เป็น 4)
2. ทำให้ db ในมือเป็น .sql (ถ้าหมายถึง การ Export ผมทำได้ครับ เพียงแต่ลองสังเกตุดูแล้วครับ ไฟล์ที่ Export ออกมา มันเขียนเป็น Defaula Charset TIS620 เลยน่ะครับ)

3. ขอบคุณสำหรับคำแนะนำครับ
4. ตอนนี้กำลัง พยายามมั่วทุกทาง แบบไม่รู้ไปทางไหนดี เริ่มต้น ยังไงดี ฮ่าๆ

5. ถ้ารู้ว่าพอมีทางแก้ไข ผมก็อุ่นใจขึ้นมาสักหน่อยแล้วครับ ขอบคุณครับผม

1.up file ทุกอย่างขึ้น host
2.สร้าง db charset latin1
3.ใช้ bigdump dump sql

ตามนี้ครับ
 
ผมไม่แน่ใจครับพี่ คือว่า...

ถ้าผม Export ออกมามันจะเป็น tis620
กรณีที่ผมสร้าง ฐานข้อมูล (ยกตัวอย่างใน localhost) กำหนดเป็น latin ก็จริงครับ
หลังจากการ Bigdump เสร็จแล้ว มันก็จะกลายเป็น tis620 น่ะครับ

ผมทำอะไรผิดไปหรือเปล่าครับพี่
 
ผมไม่แน่ใจครับพี่ คือว่า...

ถ้าผม Export ออกมามันจะเป็น tis620
กรณีที่ผมสร้าง ฐานข้อมูล (ยกตัวอย่างใน localhost) กำหนดเป็น latin ก็จริงครับ
หลังจากการ Bigdump เสร็จแล้ว มันก็จะกลายเป็น tis620 น่ะครับ

ผมทำอะไรผิดไปหรือเปล่าครับพี่

ตามนั้นถูกแล้วครับ
 
แวะกลับมาตอบข้อความสำหรับคำถามนี้ครับผม,

แรกเริ่มเดิมทีคิดว่า มีปัญหาในส่วนของ SQL โดยตรง (เพราะผมคิดว่า Copy มายก โฟลเดอร์แบบนั้น) จึงได้ทำการโพสถามคำถามที่ชวนเพื่อนๆ ปวดหัวไป...

งมโข่ง วนอยู่ในอ่างน้ำ 3 วัน 3 คืน ยังไงก็คิดหาวิธี ไม่ออกครับ

- ยกทั้งโฟลเดอร์ ไปไว้ใน MAMP แล้วรัน ก็ได้ฐานข้อมูลก้อนนั้นมาแล้ว เพียงแต่ วีบูฯ นั่น แต่เดิมมันเป็น latin1
ไหงใน ฐานข้อมูลที่ยกมาทั้งดุ้นนี่กลายเป็ฯ TIS 620 ทั้งหมดหล่ะครับ แย่แล้ว,

ผมทำอะไรพลาดไปหรือเปล่าหว่า ?
โฮสเก่า ทำอะไรกับ ฐานข้อมูลหรือเปล่าว่ะ ?
คนลงให้ตอนนั้นหวังดีเกินไปหรือเปล่า ?
เพราะเราทำงานบน Mac OS X หรือเปล่า ?

เอ๊ะ อะไร ยังไง "งง อึ้ง ทึ้ง กิมกี่ ไปสักพัก" เอาหล่ะ รันเว็ปดีกว่า... ไอ ย๊ะ ภาษาไทยที่มันควรจะเป็นเหมือนใน DB กลายเป็น ????? หมดเลย
ทั้ง Encoding ก็แล้ว ยังเป็น ????? ทำยังไงดีเนี่ย, แว๊บ กลับไปดูที่ phpMyAdmin ก็ปรากฎว่า อ่านภาษาไทยได้ซะงั้น
(ปกติผมอ่านภาษาไทยใน DB ไม่ได้ครับ ไม่ว่าจะ UTF8 หรือ TIS620 ก็ออกมาเป็นอักขระพิสดารอยู่ดี)

แล้วทำไม ไฉนเลย เจ้า DB ตัวนี้ ที่ยกมาทั้งดุ้นนี้ กลายเป็นภาษาไทยให้อ่าน ได้สบายตาหล่ะนิ

"แอบคิดในใจเอาเลยว่า มันเยาะเย้ยเราอยู่, อ่านใน phpMyAdmin ได้ อ่านในหน้าเว็ปไม่ได้ เอ้อ,..."


พยายามแก้ไข + หาวิธี + ปรึกษาพี่ๆ หลายๆ ท่าน ทั้งในเว็ปนี้ และนอกเว็ป บราๆ ตามแต่จะหาเรื่องปรึกษาได้หล่ะครับ
แต่ผลสุดท้ายแล้ว คงไม่มีใครตอบ โจทย์ที่เราต้องการ ได้อย่างลงตัวแน่นอน เลยหล่ะ

"หลากหลายวิธีการ, มีมาให้ทดลอง ซึ่งที่สุดแล้วจะได้ผลลัพธ์ที่เราต้องการเพียงแค่อย่างเดียวเท่านั้น"
(ตรงนี้ต้องบอกก่อนเลยครับ บางวิธีที่คนอื่นถนัดเราอาจจะไม่ได้เรื่อง แต่เรื่องที่เราถนัด คนอื่นก็คงไม่เป็นความเหมือนกัน คิคิ)


"สูงสุดคืนสู่สามัญ"

1.) ผมถามตัวเองว่า ต้องการอะไรจาก DB ชุดนี้
(ต้องการแต่ให้มันอ่านข้อมูลได้เท่านั้น, ไม่ได้ใช้งานมันอีกต่อไป แค่เปิด และดู ไม่มีเพิ่ม ไม่มีเติม ไม่มีโพสต่อจากนี้)

2.) ถ้าต้องการแค่นั้น ก็ทำแค่โค้ดดิ้งให้หน้าเว็ปมันอ่านภาษาไทยได้ก็พอแล้ว ไม่ใช่ ?
(เออ, จริง... เสียเวลาไปจัดการ DB ทำไมนะเรา - เพราะมัวแต่คิดว่า มันไม่เหมือนต้นแบบของมัน จึงจะทำให้มันเหมือน จะได้ไปต่อได้)

3.) แล้ว ตรงไหน หล่ะ ที่จะทำให้ หน้าเว็ปมันแปลภาษาจาก DB ชุดนี้ออกมาเป็นภาษาไทย ?
(ผมมั่วทำไปเรื่อยๆ ตั้งแต่ meta, header ยัน charset ไม่ว่าจะเป็น utl8 หรือ tis620 มั่วให้หมด)

4.) แล้วได้ผลลัพธ์ที่ต้องการไหม ?
(ไม่, ยังไม่ได้ ยังอ่านภาษาไทยเป็น ???? เหมือนเดิม)

5.) โอเค, พลาดตรงไหน ?
ถ้า DB มันถูกทำให้เป็น TIS620 โดยใครก็ไม่รู้ หมายความว่า คนทำต้องมีเหตุผลที่ทำให้เป็นแบบนั้น อืม.,
อาจจะเป็นเพราะว่า เวลาเข้าไปจัดการอะไรๆ ใน phpMyAdmin จะได้สะดวก ต่อการทำงาน ก็เป็นไปได้ แล้ว....?

ถ้าเขาทำแบบนั้นไป แล้ว หน้าเว็ปมันก็ต้องแสดงผลเป็นภาษาไทยได้สินั่น ไม่งั้นคงจะใช้งานไม่ได้ แต่เขาก็ยังใช้มันอยู่ทุกๆ วันกัน ....

อืม., ?????
เอาหล่ะ ลองใช้สมองประมวลผล สักนิดนะเรา...
ใช่แล้ว - เราปล่อยไก่เห็นๆ เราพลาดเองเต็มๆ ประตูเลย ฮ่าๆ... ทำไมน่ะเหรอ ?

เมื่อได้ลองนำเอาข้อมูลวิเคราะห์ จากข้อ 5. มาลองพิจารณาดูแล้ว มันน่าจะเป็นที่การเชื่อมต่อ DB และเรียกข้อมูลนั้นๆ ออกมา
ผ่านพ้นจากช่วงนี้ ก็จะมาถึงโค้ดดิ้งพวก meta, header บราๆ ที่ผมได้มั่วมันมาตั้งนานนม... 555+

เมื่อคิดได้เช่นนั้นจึงได้ วิ่งเข้าหาอากู๋ กูเกิ้ล แล้วหาข้อมูลว่า วิธีแก้ไข เวลาเรียก ข้อมูล ออกมาแล้ว ภาษาไทย แสดงผลเป็น ????
ก็เลยได้คำตอบ ออกมาว่า หลังจาก Connection แล้วให้ทำการ กำหนดลงไปเลยว่า ให้ query ออกมาเป็น charset อะไร...

เอาหล่ะ ที่เหลือ ก็เข้าไปที่ไฟล์ include/ แล้วตามหาไฟล์ db_mysql.php แล้วไล่มองดู ว่ามัน Connection ตรงไหน...

เอิ่ม, ดูไม่รู้เรื่อง มันไม่เหมือนไฟล์ Connection ที่เราเขียนเอง ฮ่าๆ...ทำไงดีหล่ะ มั่วเลยครับ ลองไปให้ทั่วๆ เห็น @mysql_connect...
เดาไปเลยว่ามันคือ การสั่งให้เชื่อมต่อฐานข้อมูล ฮ๋าๆ.... แล้วหลังจากนั้น ก็เอานี่ไป แปะไว้ใกล้ๆ

mysql_query("SET NAMES TIS620");

บ๊ะ ลองดูผลลัพธ์กันดีกว่า... กรี๊ดดดดดดด !!!
ไม่เป็นภาษาไทย และก็ไม่เป็น ????? แต่สิ่งที่ตามมามันเป็นอักขระเจ้ากรรมอย่างที่รู้ๆ กันอยู่ มือเท้าสั่น ดีใจมาก จัดการลอง Encoding ผ่านเบ้าเซอร์

นั่น นั่น นั่น ไง ... ภาษาไทยมาแล้วเจ้าข้าโว้ย....

จากนั้น ไปตามกำหนด header ให้เป็น charset tis620 ซะก็เรียบร้อย เวลาเข้าไปใหม่ หรือไปดูหน้าไหน ก็ไม่ต้อง encoding ใหม่แล้ว...


เรียบร้อย ปิดโปรเจค แสนวุ่นวาย, และต้องขอโทษ เพื่อนที่ช่วยกันปวดหัวด้วยนะครับผม
ขอบคุณทุกคำตอบ ทุกความเห็น และที่สำคัญ กำลังใจ ที่มีให้ ตั้งแต่หลังชนฝา จนพบเจอแสงสว่าง

ขอบคุณจากใจจริงๆ ครับผม



ปล. มันอาจจะยาวไปนะ แต่หวังว่า จะเป็นประสบการณ์ ให้คนอื่นๆ ที่เจอปัญหาลักษณะแบบนี้ ได้พบทางออกเหมือนผมเช่นกัน

โชคดีครับผม ^^
 
ดีใจด้วย ถึงมันจะไม่ใช่วิธีที่ถูกต้องก็ตาม :04a97f13:

case นี่คือการแก้ปัญหาที่ผิดนะครับ ไม่ควรไปยุ่งกับตัว code ของระบบ เพราะหากีการอับเกรด จะต้องตามแก้ไขทุกครั้งไป

ทางที่ถูกคือ แก้ไขที่ ตัวภาษาไทยที่ใช้ครับ :baa60776:
 



กรุณาปิด โปรแกรมบล๊อกโฆษณา เพราะเราอยู่ได้ด้วยโฆษณาที่ท่านเห็น
Please close the adblock program. Because we can live with the ads you see
ด้านบน ด้านล่าง