ในเครื่องเดียวจะเริ่มบริการ mysql สองรายการได้อย่างไร
จะรันบริการ mysql สองรายการบนเครื่องเดียวซึ่งสอดคล้องกับสองฐานข้อมูลได้
อย่างไร
คำตอบที่ดีที่สุด
26 ก.ค. 10:36 น. มีบางสถานการณ์ที่คุณอาจต้องการใช้งานหลายเซิร์ฟเวอร์บนเครื่องเดียวกัน ตัวอย่างเช่น คุณอาจต้องการทดสอบ MySQL เวอร์ชันใหม่โดยไม่รบกวนการตั้งค่าระบบการผลิตที่มีอยู่ของคุณ หรือคุณอาจเป็นผู้ให้บริการอินเทอร์เน็ตที่ต้องการจัดเตรียมการติดตั้ง MySQL อิสระสำหรับลูกค้าที่แตกต่างกัน
หากคุณต้องการใช้งานเซิร์ฟเวอร์หลายเครื่อง วิธีที่ง่ายที่สุดคือการคอมไพล์เซิร์ฟเวอร์ใหม่ด้วยพอร์ต TCP/IP และไฟล์ซ็อกเก็ตที่แตกต่างกัน เพื่อไม่ให้เซิร์ฟเวอร์เหล่านั้นฟังบนพอร์ตหรือซ็อกเก็ต TCP/IP เดียวกัน
สมมติว่าเซิร์ฟเวอร์ที่มีอยู่ได้รับการกำหนดค่าด้วยหมายเลขพอร์ตเริ่มต้นและไฟล์ซ็อกเก็ต จากนั้นตั้งค่าเซิร์ฟเวอร์ใหม่ด้วยบรรทัดคำสั่งกำหนดค่าเช่นนี้:
shell> ./configure --with-tcp-port=port_number
--with-unix-socket=file_name
--prefix=/usr/local/mysql-3.22.9
โดยที่ port_number และ file_name ควรแตกต่างจากหมายเลขพอร์ตเริ่มต้นและชื่อพาธของไฟล์ซ็อกเก็ต และค่า --prefix ควรระบุการติดตั้งที่แตกต่างจากการติดตั้ง MySQL Table of ที่มีอยู่ เนื้อหา
คุณสามารถตรวจสอบซ็อกเก็ตและพอร์ตที่ใช้โดย MySQL ที่กำลังรันอยู่ด้วยคำสั่งนี้:
shell> mysqladmin -h hostname --port=port_number ตัวแปร
หากคุณมีเซิร์ฟเวอร์ MySQL ทำงานบนพอร์ตที่คุณใช้อยู่ คุณจะได้รับตารางของ ตัวแปรที่กำหนดค่าได้ที่สำคัญที่สุดบางตัวของ MySQL รวมถึงชื่อซ็อกเก็ต ฯลฯ
คุณควรแก้ไขสคริปต์เริ่มต้นของเครื่องของคุณ (อาจเป็น "mysql.server") เพื่อเริ่มต้นและฆ่าเซิร์ฟเวอร์ mysqld หลายเครื่อง
คุณไม่จำเป็นต้องคอมไพล์เซิร์ฟเวอร์ MySQL ใหม่ เพียงแค่เริ่มต้นด้วยพอร์ตและซ็อกเก็ตอื่น คุณสามารถเปลี่ยนพอร์ตและซ็อกเก็ตได้โดยการระบุตัวเลือกที่ใช้โดย safe_mysqld เมื่อทำงาน:
shell> /path/to/safe_mysqld --socket=file_name --port=port_number
หากคุณอยู่บนเซิร์ฟเวอร์เดียวกันกับเซิร์ฟเวอร์อื่นที่เปิดใช้งานการบันทึก เมื่อทำงาน เซิร์ฟเวอร์ใหม่ในไดเร็กทอรีฐานข้อมูล คุณควรระบุชื่อของไฟล์บันทึกโดยใช้ตัวเลือก --log และ --log-update ของ safe_mysqld มิฉะนั้น เซิร์ฟเวอร์ทั้งสองอาจพยายามเขียนลงในไฟล์บันทึกเดียวกัน
คำเตือน: โดยปกติคุณไม่ควรมีเซิร์ฟเวอร์ 2 เครื่องที่อัปเดตข้อมูลในฐานข้อมูลเดียวกัน! หากระบบปฏิบัติการของคุณไม่รองรับการล็อคระบบโดยปราศจากข้อผิดพลาด สิ่งนี้อาจทำให้เกิดเรื่องน่าประหลาดใจเกิดขึ้นได้!
หากคุณต้องการใช้ไดเร็กทอรีฐานข้อมูลอื่นสำหรับเซิร์ฟเวอร์ตัวที่สอง คุณสามารถใช้ตัวเลือก --datadir=path ของ safe_mysqld
ดี
50% (0) ไม่ดี
50% (0)