วิธีการติดตั้งและเริ่มอินสแตนซ์ MySQL หลายรายการใน Windows 2012


12

ฉันเพิ่งติดตั้ง MySQL 5.7 บน Windows 2012 VM ฉันพยายามที่จะสร้างและเรียกใช้หลาย ๆ ครั้ง แต่ผิดหวังมากที่สิ่งที่เรียบง่ายเช่นนี้ไม่ทำงาน

ฉันติดตั้ง MySQL ในเซิร์ฟเวอร์ C: \ Program Files \ MySQL \ MySQL Serverซึ่งเป็นตำแหน่งเริ่มต้นจากนั้นฉันก็คัดลอกโฟลเดอร์และสร้างสำเนาอีกชุดหนึ่งเพื่อสร้างอินสแตนซ์อื่น (ฉันคิดว่านี่เป็นวิธีการทำงานหรือไม่)

อินสแตนซ์ MySQL ทั้งสองจะแสดงในภาพด้านล่าง

Server1 Server1

Server2
Server2

การตั้งค่า INI สำหรับเซิร์ฟเวอร์ทั้งสองจะได้รับด้านล่าง:

Server1

server-id = 1
log-bin = "mysql-bin"
binlog-ละเว้น-db = ทดสอบ
binlog-ละเว้น-db = information_schema
จำลองข้อมูล-ละเว้น-db = ทดสอบ
จำลอง-ละเว้น-db = information_schema
รีเลย์-log = "mysql-relay -log "
auto-increment-increment = 2
อัตโนมัติ-increment-offset = 1

Server2
เซิร์ฟเวอร์-id = 2
log-bin = "mysql-bin"
binlog-ละเว้น-db = ทดสอบ
binlog-ละเว้น-db = information_schema
จำลองข้อมูล-ละเว้น-db = ทดสอบ
จำลอง-ละเว้น-db = information_schema
รีเลย์ล็อก = "mysql- บันทึกการถ่ายทอด "
เพิ่มขึ้น
โดยอัตโนมัติ= 2 เพิ่มขึ้นอัตโนมัติชดเชย = 2

ฉันกำลังรันเซิร์ฟเวอร์ทั้งสองโดยเปิดพร้อมท์คำสั่งและพิมพ์ต่อไปนี้:
" เซิร์ฟเวอร์C: \ Program Files \ MySQL \ MySQL เซิร์ฟเวอร์ 5.7 \ bin \ mysqld"
"C: \ Program Files \ เซิร์ฟเวอร์ MySQL \ MySQL \ MySQL 5.7 - 2 \ bin \ mysqld"

ดูเหมือนว่าคำสั่งจะทำงานได้สำเร็จเนื่องจากไม่มีข้อผิดพลาดปรากฏขึ้น แต่เมื่อฉันดูตัวจัดการงานเพื่อดูว่ามีการเรียกใช้กระบวนการ mysql หรือไม่ฉันไม่เห็นเลย

ผมทำอะไรผิดหรือเปล่า?


โปรดแก้ไขคำถามของคุณเพื่อรวมบันทึกข้อผิดพลาดอื่น ๆ
EEAA

ปัญหาได้รับการแก้ไขแล้ว
Frank Martin

คุณต้องการให้ฉันเปิดคำถามเพื่อให้คุณสามารถโพสต์คำตอบได้หรือไม่?
EEAA

ใช่ฉันสามารถโพสต์คำตอบได้
แฟรงค์มาร์ติ

คำตอบ:


11

ฉันเชื่อว่าคุณพยายามเรียกใช้พวกเขาในพอร์ตเดียวกัน

เปลี่ยนหมายเลขพอร์ตให้แตกต่างกันเป็นสิ่งที่ทำให้การทำงาน


11

ข้อผิดพลาดที่ฉันทำคือคัดลอกทั้งโฟลเดอร์การติดตั้ง MySQL คุณไม่จำเป็นต้องคัดลอกโฟลเดอร์นี้

  • เพียงสร้างไฟล์ ini ใหม่สำหรับแต่ละอินสแตนซ์ที่คุณต้องการเรียกใช้ (ตัวอย่างที่ให้ไว้ด้านบน) ที่ตำแหน่งใด ๆ เช่น C: \ MyInstance \ my1.ini
  • แล้วสร้างโฟลเดอร์ใหม่สำหรับเช่น data1 ใน C: \ MyInstances \ data1 และคัดลอกข้อมูล MySQLและinformation_schemaฐานข้อมูลในนั้น คุณจะได้รับฐานข้อมูลเหล่านี้จากโฟลเดอร์ข้อมูลที่ติดตั้ง MySQL บน Windows 2012 (และอาจเป็นเซิร์ฟเวอร์ระบบปฏิบัติการอื่น ๆ ) โดยทั่วไปจะเป็นC: \ ProgramData \ MySQL
  • จากนั้นกำหนดสิ่งต่อไปนี้ในไฟล์ ini ของคุณ

datadir = C: / MyInstances / data1

  1. จากนั้นเรียกใช้คำสั่งต่อไปนี้ซึ่งจะติดตั้ง MySQL เป็นบริการ หลังจากสร้างบริการแล้วให้เรียกใช้บริการ

MySqlpath \ bin \ mysqld - ติดตั้ง mysqld1 - เริ่มต้นไฟล์ = PATH_TO_YOUR_INI_FILE

แน่นอนในแต่ละไฟล์ ini คุณต้องกำหนดหมายเลขพอร์ตที่แตกต่างกันตามที่ @Anthony Fornito พูดถึง


11
  1. สร้างโฟลเดอร์ข้อมูลแยกต่างหากและมอบการควบคุมแบบเต็มให้กับ NETWORK SERVICE
  2. คัดลอกไฟล์ my.ini ไปยังโฟลเดอร์ data ใหม่
  3. สร้างไฟล์ใหม่ในไดเรกทอรีข้อมูลชื่อ mysql-init.txt และเพิ่มบรรทัดเดียวเพื่อให้แน่ใจว่าตั้งรหัสผ่านของผู้ใช้รูท

    • ALTER USER 'root'@'localhost' IDENTIFIED BY '[Enter Password]';
  4. แก้ไขไฟล์ my.ini โดยเปลี่ยนพอร์ตซ็อกเก็ตดาต้าและชื่อหน่วยความจำที่แชร์ ทั้งหมดนี้จะต้องแตกต่างจากอินสแตนซ์อื่น ๆ ของ MySQL

my.ini:

[client]
port=3333
socket=MYSQL2_INST.SOCK
shared-memory-base-name=MYSQL2_INST

[mysqld]
shared-memory-base-name=MYSQL2_INST
socket=MYSQL2_INST.SOCK
port=3333
basedir="C:/Program Files/MySQL/MySQL Server 5.7"
datadir="E:/MySQL2/Data"
  1. จากบรรทัดคำสั่งนำทางไปยัง ~ \ MySQL Server XY \ bin \ และเรียกใช้

    • mysqld --install MySQL57-2 --defaults-file=E:\mysql2\data\my.ini --init-file=E:\mysql2\data\mysql-init.txt
  2. เริ่มบริการ

    • NET START MySQL57-2
  3. ตรวจสอบเพื่อให้แน่ใจว่าบริการเริ่มต้นได้สำเร็จ หากไม่เป็นเช่นนั้นคุณสามารถค้นหาบันทึกข้อผิดพลาดในโฟลเดอร์ข้อมูลอื่นคุณควรจะไปดี


ตามมัน แต่ไม่สามารถเริ่มบริการใหม่ได้รับ PS C: \ MySQLInstance \ data> net start mysqld บริการ mysqld กำลังเริ่มต้น ไม่สามารถเริ่มบริการ mysqld ได้ บริการไม่ได้รายงานข้อผิดพลาด ความช่วยเหลือเพิ่มเติมพร้อมใช้งานโดยการพิมพ์ NET HELPMSG 3534
Rajat
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.