เปลี่ยนตัวแปรเซิร์ฟเวอร์ character_set_server

ฉันต้องการเปลี่ยนตัวแปรเซิร์ฟเวอร์ mysql character_set_server เป็น utf8 ฉันค้นหาใน Google แล้ว แต่ดูเหมือนจะไม่พบข้อมูลที่ฉันต้องการหรือคำแนะนำไม่ตรงกัน ดูเหมือนว่าฉันต้องแก้ไขไฟล์ชื่อ my.cnf แต่ไม่มีไฟล์นี้อยู่ในระบบของฉัน เวอร์ชันคือ 5.1.36


person grai    schedule 09.08.2011    source แหล่งที่มา
comment
หมายเหตุถึงผู้เยี่ยมชมในอนาคตที่นี่: OP ยอมรับคำตอบที่ผิด (ดูความคิดเห็นเพื่อดูว่าทำไม) โปรดดูคำตอบที่ได้รับการโหวตสูงสุดแทน (ไม่ใช่คำตอบของฉัน และฉันไม่มีส่วนได้ส่วนเสียในคำถามนี้ นี่เป็นเพียง PSA)   -  person Ben Lee    schedule 15.11.2013


คำตอบ (3)


เรียกใช้แบบสอบถามนี้:

set global character_set_server = utf8;

จากนั้นรีสตาร์ท mysql คุณสามารถดูรายการตัวแปรทั้งหมดของคุณได้อย่างง่ายดาย

show variables;
person Nicola Cossu    schedule 09.08.2011
comment
สิ่งนี้ไม่ถูกต้อง หากคุณเรียกใช้การสืบค้นและรีสตาร์ท MySQL คุณจะมี character_set_server เหมือนกับก่อนที่คุณจะออกการสืบค้น ซึ่งอาจจะเป็น utf8 หรือไม่ก็ได้ การรีสตาร์ท mysql จะโหลดการกำหนดค่าจากดิสก์อีกครั้ง - person Cosimo; 29.03.2012
comment
ดูเหมือนคุณจะไม่รู้พื้นฐานของ MySQL ดังนั้นอย่างน้อยโปรดทดสอบคำตอบของคุณก่อนที่จะโพสต์ - person Federico Razzoli; 07.01.2016
comment
ถึง OP @grai โปรดลบคำตอบนี้ออกจากคำตอบที่เลือกเพราะมันผิดพลาด - person serge; 09.10.2018

นี่เป็นผลลัพธ์แรกจาก google

http://dev.mysql.com/doc/refman/5.0/en/server-options.html#option_mysqld_Character-set-server

มีสองวิธีในการตั้งค่านี้

  • ผ่านไฟล์การกำหนดค่า (เซิร์ฟเวอร์ชุดอักขระ) จำเป็นต้องรีสตาร์ท
  • หรือผ่าน set global/session character_set_server ไม่จำเป็นต้องรีสตาร์ท แต่ถ้าฐานข้อมูลของคุณรีสตาร์ท มันจะหายไป คุณจะต้องตั้งค่านี้อีกครั้ง
person ajreal    schedule 09.08.2011
comment
ขอบคุณสำหรับคำตอบของคุณ แต่ฉันไม่เข้าใจว่าทำไม downvote เอกสารนั้นไม่ชัดเจนสำหรับผู้ที่ไม่มีประสบการณ์ ดังนั้นฉันคิดว่าฉันจะถามคำถามที่นี่ - person grai; 09.08.2011
comment
แต่มาจากผลลัพธ์ของ Google ก่อน :( คุณควรถามที่ serverfault แทนที่นี่ - person ajreal; 09.08.2011
comment
แน่นอนคุณพูดถูก แต่ประเด็นคือ: ตัวเลือกนี้เป็นแบบไดนามิก แต่มีเพียงเซิร์ฟเวอร์เท่านั้นที่ควรตั้งค่าข้อมูลนี้ คุณไม่ควรตั้งค่าของตัวแปรนี้ด้วยตนเอง dev.mysql.com/doc/refman/5.6/ en/server-system-variables.html - person Federico Razzoli; 07.01.2016
comment
@FedericoRazzoli - ฉันให้ทั้งสองวิธีและอธิบายผลที่ตามมาของการใช้การกำหนดค่าด้วยตนเอง - person ajreal; 07.01.2016

ตำแหน่งของไฟล์ my.ini และ my.cnf:

http://dev.mysql.com/doc/refman/5.0/en/option-files.html

สำหรับคำถามว่าคุณควรใช้ไฟล์ my.ini หรือ my.cnf เอกสารข้างต้นระบุว่า

ระบบ Windows ใช้ทั้ง my.ini และ my.cnf

ระบบ Linux, Unix, Mac OS X ใช้ my.cnf

person Paul Gobée    schedule 16.06.2013
comment
windows ใช้ทั้งสองอย่างหมายความว่าอย่างไร พวกเขามีลำดับความสำคัญหรือใช้ค่าสุ่มจากหนึ่งในนั้น? - person serge; 09.10.2018
comment
นานมาแล้ว. จำไม่ได้. ดูทรัพยากรที่เชื่อมโยง - ดูตาราง 4.1- อ่าน %WINDIR%\my.ini, %WINDIR%\my.cnf C:\my.ini, C:\my.cnf ฉันตีความว่าเป็นอย่างใดอย่างหนึ่ง - person Paul Gobée; 10.10.2018
comment
หากเป็นทั้งสองอย่าง ในอันแรก (cnf) ค่าคือ A และในอันที่สอง (ini) คือ B เราควรคาดหวังว่าจะใช้อะไร - person serge; 11.10.2018