Cara menginstal dan memulai beberapa instance MySQL pada Windows 2012

12

Saya baru saja menginstal MySQL 5.7 pada Windows 2012 VM. Saya mencoba membuat dan menjalankan banyak contoh tetapi sangat frustrasi karena hal sederhana itu tidak berfungsi.

Saya menginstal MySQL di C: \ Program Files \ MySQL \ MySQL Server 5.7 yang merupakan lokasi default dan kemudian saya menyalin folder dan membuat salinannya untuk membuat instance lain (saya kira ini cara kerjanya?)

Kedua instance MySQL ditunjukkan pada gambar di bawah ini.

Server1 Server1

Server2
Server2

Pengaturan INI untuk kedua server diberikan di bawah ini:

Server1

server-id = 1
log-bin = "mysql-bin"
binlog-ign-db = uji
binlog-ign-db = information_schema
replikasi-ign-db = uji
replikasi-abaikan-db = information_schema
relay-log = "mysql-relay -log "
peningkatan-otomatis-kenaikan = 2
kenaikan-otomatis-offset = 1

Server2
server-id = 2
log-bin = "mysql-bin"
binlog-ign-db = test
binlog-ign-db = information_schema
replicate-ign-db = test
replicate-ign-db = information_schema
relay-log = "mysql- relay-log "
kenaikan-kenaikan
-otomatis = 2 kenaikan-kenaikan-otomatis = 2

Saya menjalankan kedua server dengan membuka command prompt dan mengetik berikut:
"C: \ Program Files \ MySQL \ MySQL Server 5.7 \ bin \ mysqld"
"C: \ Program Files \ MySQL \ MySQL Server 5.7 - 2 \ bin \ mysqld"

Perintah ini tampaknya berjalan dengan sukses karena tidak ada kesalahan yang ditampilkan tetapi ketika saya melihat task manager untuk melihat apakah ada proses mysql yang berjalan, saya tidak melihat apa pun.

Apa yang saya lakukan salah?

Frank Martin
sumber
Harap edit pertanyaan Anda untuk memasukkan log kesalahan dll.
EEAA
Masalah terpecahkan.
Frank Martin
Apakah Anda ingin saya membuka pertanyaan sehingga Anda dapat mengirim jawaban?
EEAA
Ya jadi saya bisa memposting jawaban.
Frank Martin

Jawaban:

11

Saya yakin Anda mencoba menjalankannya di port yang sama.

Mengubah nomor port menjadi berbeda adalah apa yang membuatnya berfungsi

Anthony Fornito
sumber
11

Kesalahan yang saya lakukan adalah menyalin seluruh folder instalasi MySQL. Anda tidak perlu menyalin folder ini.

  • Cukup buat file ini baru untuk setiap instance yang ingin Anda jalankan (contoh yang diberikan di atas) di lokasi apa pun untuk misalnya C: \ MyInstances \ my1.ini.
  • Kemudian buat folder baru untuk misal data1 di C: \ MyInstances \ data1 dan salin mysql dan database information_schema di dalamnya. Anda akan mendapatkan basis data ini dari folder data tempat MySQL diinstal. Pada Windows 2012 (dan mungkin OS server lainnya) biasanya adalah C: \ ProgramData \ MySQL
  • Kemudian tentukan hal berikut dalam file ini Anda.

datadir = C: / MyInstances / data1

  1. Kemudian jalankan perintah berikut yang akan menginstal MySQL sebagai layanan. Setelah layanan dibuat, jalankan layanan.

MySqlpath \ bin \ mysqld - instal mysqld1 --defaults-file = PATH_TO_YOUR_INI_FILE

Tentu saja dalam setiap file ini, Anda harus menentukan nomor port yang berbeda seperti yang disebutkan oleh @Anthony Fornito.

Frank Martin
sumber
11
  1. Buat folder data terpisah dan berikan KONTROL PENUH ke LAYANAN JARINGAN.
  2. Salin file my.ini ke folder data baru.
  3. Buat file baru di direktori data yang disebut mysql-init.txt dan tambahkan satu baris untuk memastikan bahwa kata sandi pengguna root diatur.

    • ALTER USER 'root'@'localhost' IDENTIFIED BY '[Enter Password]';
  4. Edit file my.ini dengan mengubah port, socket, datadir, dan nama dasar memori bersama. Semuanya perlu berbeda dari contoh MySQL lainnya.

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. Dari baris perintah navigasikan ke ~ \ MySQL Server XY \ bin \ dan jalankan

    • mysqld --install MySQL57-2 --defaults-file=E:\mysql2\data\my.ini --init-file=E:\mysql2\data\mysql-init.txt
  2. Mulai layanan

    • NET START MySQL57-2
  3. Periksa untuk memastikan layanan mulai berhasil. Jika tidak, maka Anda dapat menemukan kesalahan log di folder data lain Anda harus pergi.

MasterProgrammer200
sumber
mengikutinya, tetapi tidak dapat memulai mendapatkan layanan baru, PS C: \ MySQLInances \ data> net start mysqld Layanan mysqld mulai. Layanan mysqld tidak dapat dimulai. Layanan tidak melaporkan kesalahan. Bantuan lebih lanjut tersedia dengan mengetik NET HELPMSG 3534.
Rajat