วิธีการเปลี่ยนการเข้ารหัสของฐาน

สารบัญ:

วิธีการเปลี่ยนการเข้ารหัสของฐาน
วิธีการเปลี่ยนการเข้ารหัสของฐาน

วีดีโอ: วิธีการเปลี่ยนการเข้ารหัสของฐาน

วีดีโอ: วิธีการเปลี่ยนการเข้ารหัสของฐาน
วีดีโอ: การแปลงเลขฐานต่างๆ | MAIครูพี่ใหม่ 2024, อาจ
Anonim

ระบบจัดการฐานข้อมูล Mysql เริ่มตั้งแต่เวอร์ชัน 4.1 รองรับการทำงานกับการเข้ารหัส ปัญหาหลักที่เกิดขึ้นเมื่อเชื่อมต่อฐานข้อมูลกับ PHP ในกรณีนี้ การเข้ารหัสเนื้อหาของฐานและการเชื่อมต่อต้องตรงกัน

วิธีการเปลี่ยนการเข้ารหัสของฐาน
วิธีการเปลี่ยนการเข้ารหัสของฐาน

คำแนะนำ

ขั้นตอนที่ 1

โปรดทราบว่าสาเหตุทั่วไปของปัญหากับ Mysql คือการเข้ารหัสเริ่มต้นสำหรับฐานข้อมูลถูกตั้งค่าเป็น latin1 ไคลเอนต์ที่เชื่อมต่อส่วนใหญ่ได้รับการกำหนดค่าด้วยเช่นกัน คุณป้อนข้อมูลและดูผลลัพธ์โดยใช้มันด้วย แม้ว่าการเข้ารหัสนี้จะแสดงอักษรซีริลลิกอย่างถูกต้อง แต่รหัสของตารางสัญลักษณ์ในตารางนั้นไม่ตรงกับอักขระซิริลลิกจริง ดังนั้น การค้นหาและการเรียงลำดับข้อมูลสามารถสร้างผลลัพธ์ที่คาดเดาไม่ได้อย่างสมบูรณ์

ขั้นตอนที่ 2

เปลี่ยนการเข้ารหัสฐานข้อมูลเป็นแบบที่แสดงอักขระซิริลลิกอย่างถูกต้อง เช่น utf-8 หรือ cp1251 เมื่อต้องการทำสิ่งนี้ ให้แปลงข้อมูลจากการเข้ารหัส Latin1 เป็น cp1251 อย่าใช้การแปลงข้อมูลอย่างง่าย เนื่องจากรหัสอักขระไม่ถูกต้อง ดังนั้น คุณต้องกำจัดการผูกการเข้ารหัส เมื่อต้องการทำเช่นนี้ ให้แปลงข้อมูลและประเภทอักขระเป็นข้อมูลไบนารี ใช้แบบสอบถาม Alter table "Enter table name" t1 change c1 c1 blob

ขั้นตอนที่ 3

เรียกใช้แบบสอบถามเพื่อเปลี่ยนการเข้ารหัสของฐานข้อมูล Mysql สำหรับสิ่งนี้ ใช้ตัวอย่างต่อไปนี้: แก้ไขตาราง "ป้อนชื่อตาราง" t1 เปลี่ยนชุดข้อความแชท c1 c1 "ป้อนชื่อของการเข้ารหัสที่ต้องการ ตัวอย่างเช่น cp1251" ไม่มีการเปลี่ยนแปลงทางกายภาพเพียงไบต์เดียว แต่กฎของการสร้างอักขระจะเปลี่ยนไป จากนั้น หากต้องการเปลี่ยนการเข้ารหัสฐานข้อมูล คุณสามารถใช้คิวรีการแปลงข้อมูลอย่างง่ายได้

ขั้นตอนที่ 4

โปรดทราบว่าเมื่อเปลี่ยนการเข้ารหัสตารางในฟิลด์ที่มีดัชนี คุณต้องลบและสร้างใหม่ กล่าวคือ สร้างใหม่ในตารางฐานข้อมูลทั้งหมด เมื่อเปลี่ยนไปใช้การเข้ารหัส ตรวจสอบให้แน่ใจว่าไคลเอ็นต์ภาพรองรับ Unicode ตัวอย่างเช่น ไคลเอ็นต์ SQLyog แสดงเนื้อหาของตารางที่เก็บข้อมูลในการเข้ารหัส utf-8 อย่างไม่ถูกต้อง