ฉันกำลังสร้างเซิร์ฟเวอร์ใหม่ด้วยเครื่องมือ mysql_install_db มันตั้งค่า datadir, พอร์ต, รหัสผ่าน, บริการ ฯลฯ ที่ถูกต้อง แต่ปัญหาของฉันคือชุดอักขระและการเรียงตารางฐานของฉันผิด ต้องเป็น utf8mb4 และ utf8mb4_general_ci
ฉันไม่พบวิธีเปลี่ยนตารางเหล่านี้ด้วยการติดตั้ง เมื่อฉันเปลี่ยน my.cnf/my.ini จะเปลี่ยนเฉพาะฐานข้อมูลที่สร้างขึ้นใหม่เท่านั้น แต่เนื่องจาก mysql_install_db สร้างฐานข้อมูลระบบ จึงสร้างผิด
ดูเหมือนว่า msyql_install_db.exe ของฉันจะไม่ยอมรับอาร์กิวเมนต์ไฟล์เริ่มต้น
อย่างอื่นก็แปลกเช่นกัน ถ้าฉันเรียกใช้คำสั่งเพื่อสร้างฐานข้อมูลใหม่ ก็จะใช้ utf8mb3 ในขณะที่ฉันตั้งค่า COLLATE เป็น utf8mb4_unicode_ci อย่างชัดเจน
สร้างฐานข้อมูลหากไม่มีอยู่ tt ชุดอักขระเริ่มต้น utf8mb4 รวบรวม utf8mb4_unicode_ci
ฉันใช้ mariadb 10.6.4 ซึ่งเป็นเวอร์ชันล่าสุด
ใครรู้วิธีตั้งค่า charset และ collation ที่ถูกต้องให้กับฐานข้อมูลระบบ?
Tools\mariadb-winx64\bin\mysql_install_db.exe --datadir="Tools\mariadb-data" --password=PASSWORD --port=8137 --service=MyDB
[อัปเดต]
ฉันพยายามตั้งค่า my.cnf ด้วยสิ่งต่อไปนี้ แต่ดูเหมือนว่าจะไม่มีผล: https://stackoverflow.com/questions/3513773/change-mysql-default-character-set-to-utf-8-in-my-cnf
ลองใช้วิธีอื่นด้วย initializing-insecure แต่ก็ได้ผลลัพธ์เหมือนกัน ฉันสร้าง my.cnf ด้วยการเข้ารหัสที่ถูกต้อง แต่ก็ยังได้รับการเข้ารหัสตารางที่ไม่ถูกต้อง:
mariadb-winx64\bin\mariadbd.exe --defaults-file=./my.cnf --initialize-insecure --datadir=./Test
และ my.cnf
[ลูกค้า]
ชุดอักขระเริ่มต้น = utf8mb4
[มายเอสคิวแอล]
ชุดอักขระเริ่มต้น = utf8mb4
[มายเอสคิวลด์]
ข้ามให้สิทธิ์ตาราง
พอร์ต = 5137
เซิร์ฟเวอร์การเรียง = utf8mb4_unicode_ci
init-connect = 'ตั้งค่าชื่อ utf8mb4'
เซิร์ฟเวอร์ชุดอักขระ = utf8mb4