Rumah Operasi dan penyelenggaraan operasi dan penyelenggaraan linux Bagaimana untuk membina kluster kontena MySQL yang sangat tersedia di Linux?

Bagaimana untuk membina kluster kontena MySQL yang sangat tersedia di Linux?

Aug 01, 2023 am 10:13 AM
mysql linux bekas Bina kelompok kontena mysql yang sangat tersedia

Bagaimana untuk membina kluster kontena MySQL yang sangat tersedia di Linux?

Dengan peningkatan pengkomputeran awan dan teknologi kontena, semakin banyak perusahaan mula menggunakan kontena untuk membina aplikasi. Sebagai salah satu pangkalan data hubungan yang paling biasa digunakan, MySQL juga boleh mencapai ketersediaan tinggi melalui kontena. Dalam artikel ini, kami akan memperkenalkan cara membina kluster kontena MySQL yang sangat tersedia di Linux dan memberikan contoh kod yang berkaitan.

Langkah 1: Sediakan persekitaran

Pertama, anda memerlukan hos Linux untuk membina gugusan kontena MySQL. Pastikan Docker dan Docker Compose dipasang pada hos ini. Jika ia tidak dipasang, anda boleh memasangnya dengan arahan berikut:

$ sudo apt-get update
$ sudo apt-get install docker.io
$ sudo apt-get install docker-compose
Salin selepas log masuk

Langkah 2: Buat imej Docker

Seterusnya, anda perlu mencipta imej MySQL untuk menjalankan bekas. Proses pembinaan imej boleh ditakrifkan melalui Dockerfile. Buat fail bernama Dockerfile dan tambahkan kandungan berikut di dalamnya: Dockerfile的文件,并在其中添加以下内容:

FROM mysql:8.0

ENV MYSQL_ROOT_PASSWORD your_password
ENV MYSQL_DATABASE your_database

COPY your_script.sql /docker-entrypoint-initdb.d/
Salin selepas log masuk

在上述代码中,your_password为MySQL的root用户密码,your_database为要创建的数据库名称,your_script.sql为要执行的初始化脚本文件。可以根据实际情况修改这些参数。

保存并退出文件后,使用以下命令来构建镜像:

$ sudo docker build -t your_image_name .
Salin selepas log masuk

其中,your_image_name是你给镜像起的名称。

步骤三:创建Docker Compose文件

在搭建MySQL容器集群之前,需要创建一个docker-compose.yml文件来定义集群中的容器。创建一个名为docker-compose.yml的文件,并在其中添加以下内容:

version: '3'

services:
  mysql1:
    image: your_image_name
    restart: always
    ports:
      - 3306:3306
    volumes:
      - ./mysql1:/var/lib/mysql
    environment:
      - MYSQL_REPLICATION_MODE=master
      - MYSQL_REPLICATION_USER=repl_user
      - MYSQL_REPLICATION_PASSWORD=repl_password

  mysql2:
    image: your_image_name
    restart: always
    volumes:
      - ./mysql2:/var/lib/mysql
    environment:
      - MYSQL_REPLICATION_MODE=slave
      - MYSQL_MASTER_HOST=mysql1
      - MYSQL_MASTER_PORT=3306
      - MYSQL_MASTER_USER=repl_user
      - MYSQL_MASTER_PASSWORD=repl_password
Salin selepas log masuk

在上述代码中,your_image_name是之前构建的MySQL镜像名称。mysql1mysql2分别表示两个MySQL容器的名称。MYSQL_REPLICATION_MODE参数设置容器的复制模式,master表示主节点,slave表示从节点。MYSQL_REPLICATION_USERMYSQL_REPLICATION_PASSWORD为复制用户的用户名和密码。MYSQL_MASTER_HOSTMYSQL_MASTER_PORT为主节点的地址和端口。MYSQL_MASTER_USERMYSQL_MASTER_PASSWORD为连接主节点的用户名和密码。

步骤四:启动容器集群

保存并退出文件后,使用以下命令来启动容器集群:

$ sudo docker-compose up -d
Salin selepas log masuk

通过-d参数可使容器在后台运行。

步骤五:验证容器状态

使用以下命令可以查看容器的状态:

$ sudo docker-compose ps
Salin selepas log masuk

可以看到容器的状态是running,表示容器运行正常。

步骤六:测试容器集群

现在,可以测试MySQL容器集群是否正常工作。首先,连接到MySQL容器的主节点,并创建一个测试数据库:

$ sudo docker exec -it mysql1 mysql -uroot -p
Enter password: your_password
mysql> CREATE DATABASE test;
mysql> EXIT;
Salin selepas log masuk

然后,连接到从节点,并验证是否能够读取到主节点上的数据:

$ sudo docker exec -it mysql2 mysql -uroot -p
Enter password: your_password
mysql> USE test;
mysql> SELECT * FROM your_table;
mysql> EXIT;
Salin selepas log masuk

其中,your_tablerrreee

Dalam kod di atas, your_password ialah kata laluan pengguna root MySQL, your_database code> ialah nama pangkalan data yang akan dibuat dan your_script.sql ialah fail skrip permulaan yang akan dilaksanakan. Parameter ini boleh diubah suai mengikut keadaan sebenar.

Selepas menyimpan dan keluar dari fail, gunakan arahan berikut untuk membina imej:

rrreee

di mana nama_imej_anda ialah nama yang anda berikan kepada imej itu. 🎜🎜Langkah 3: Buat fail Docker Compose🎜🎜Sebelum membina gugusan bekas MySQL, anda perlu mencipta fail docker-compose.yml untuk mentakrifkan bekas dalam gugusan. Cipta fail bernama docker-compose.yml dan tambahkan kandungan berikut di dalamnya: 🎜rrreee🎜Dalam kod di atas, your_image_name ialah nama imej MySQL yang dibina sebelum ini. mysql1 dan mysql2 masing-masing mewakili nama dua bekas MySQL. Parameter MYSQL_REPLICATION_MODE menetapkan mod replikasi bekas, master mewakili nod induk dan slave mewakili nod hamba. MYSQL_REPLICATION_USER dan MYSQL_REPLICATION_PASSWORD ialah nama pengguna dan kata laluan pengguna replikasi. MYSQL_MASTER_HOST dan MYSQL_MASTER_PORT ialah alamat dan port nod induk. MYSQL_MASTER_USER dan MYSQL_MASTER_PASSWORD ialah nama pengguna dan kata laluan untuk menyambung ke nod induk. 🎜🎜Langkah 4: Mulakan kelompok kontena 🎜🎜Selepas menyimpan dan keluar dari fail, gunakan arahan berikut untuk memulakan kelompok kontena: 🎜rrreee🎜Parameter -d boleh digunakan untuk membuat kontena berjalan di latar belakang. 🎜🎜Langkah 5: Sahkan status bekas 🎜🎜Gunakan arahan berikut untuk menyemak status bekas: 🎜rrreee🎜Anda boleh melihat bahawa status bekas itu berjalan, yang bermaksud bekas sedang berjalan biasalah. 🎜🎜Langkah 6: Uji kluster kontena🎜🎜Kini, anda boleh menguji sama ada kluster kontena MySQL berfungsi dengan betul. Mula-mula, sambung ke nod induk bekas MySQL dan buat pangkalan data ujian: 🎜rrreee🎜 Kemudian, sambung ke nod hamba dan sahkan sama ada data pada nod induk boleh dibaca: 🎜rrreee🎜 Antaranya, your_table code> ialah nama jadual yang anda buat pada nod utama. 🎜🎜Melalui langkah di atas, kluster kontena MySQL yang sangat tersedia telah berjaya dibina. Dengan mereplikasi data nod induk pada berbilang nod hamba, redundansi data dan ketersediaan tinggi boleh dicapai. Jika nod induk gagal, nod induk baharu boleh dipilih daripada nod hamba dan terus menyediakan perkhidmatan. 🎜🎜Saya harap artikel ini dapat membantu anda membina kluster kontena MySQL yang sangat tersedia di Linux. Saya doakan anda berjaya! 🎜

Atas ialah kandungan terperinci Bagaimana untuk membina kluster kontena MySQL yang sangat tersedia di Linux?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Arahan sembang dan cara menggunakannya
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Perbezaan antara centos dan ubuntu Perbezaan antara centos dan ubuntu Apr 14, 2025 pm 09:09 PM

Perbezaan utama antara CentOS dan Ubuntu adalah: asal (CentOS berasal dari Red Hat, untuk perusahaan; Ubuntu berasal dari Debian, untuk individu), pengurusan pakej (CentOS menggunakan yum, yang memberi tumpuan kepada kestabilan; Ubuntu menggunakan APT, untuk kekerapan yang tinggi) Pelbagai tutorial dan dokumen), kegunaan (CentOS berat sebelah ke arah pelayan, Ubuntu sesuai untuk pelayan dan desktop), perbezaan lain termasuk kesederhanaan pemasangan (CentOS adalah nipis)

Penjelasan terperinci mengenai Prinsip Docker Penjelasan terperinci mengenai Prinsip Docker Apr 14, 2025 pm 11:57 PM

Docker menggunakan ciri -ciri kernel Linux untuk menyediakan persekitaran berjalan yang cekap dan terpencil. Prinsip kerjanya adalah seperti berikut: 1. Cermin digunakan sebagai templat baca sahaja, yang mengandungi semua yang anda perlukan untuk menjalankan aplikasi; 2. Sistem Fail Kesatuan (Unionfs) menyusun pelbagai sistem fail, hanya menyimpan perbezaan, menjimatkan ruang dan mempercepatkan; 3. Daemon menguruskan cermin dan bekas, dan pelanggan menggunakannya untuk interaksi; 4. Ruang nama dan cgroups melaksanakan pengasingan kontena dan batasan sumber; 5. Pelbagai mod rangkaian menyokong interkoneksi kontena. Hanya dengan memahami konsep -konsep teras ini, anda boleh menggunakan Docker dengan lebih baik.

CentOS berhenti penyelenggaraan 2024 CentOS berhenti penyelenggaraan 2024 Apr 14, 2025 pm 08:39 PM

CentOS akan ditutup pada tahun 2024 kerana pengedaran hulu, RHEL 8, telah ditutup. Penutupan ini akan menjejaskan sistem CentOS 8, menghalangnya daripada terus menerima kemas kini. Pengguna harus merancang untuk penghijrahan, dan pilihan yang disyorkan termasuk CentOS Stream, Almalinux, dan Rocky Linux untuk memastikan sistem selamat dan stabil.

Cara menggunakan desktop docker Cara menggunakan desktop docker Apr 15, 2025 am 11:45 AM

Bagaimana cara menggunakan desktop Docker? Docktop Docktop adalah alat untuk menjalankan bekas Docker pada mesin tempatan. Langkah -langkah untuk digunakan termasuk: 1. Pasang desktop Docker; 2. Mulakan desktop Docker; 3. Buat imej Docker (menggunakan Dockerfile); 4. Membina imej Docker (menggunakan Docker Build); 5. Jalankan bekas Docker (menggunakan Docker Run).

Cara memasang centos Cara memasang centos Apr 14, 2025 pm 09:03 PM

Langkah Pemasangan CentOS: Muat turun Imej ISO dan Burn Bootable Media; boot dan pilih sumber pemasangan; Pilih susun atur bahasa dan papan kekunci; Konfigurasikan rangkaian; memisahkan cakera keras; Tetapkan jam sistem; Buat pengguna root; pilih pakej perisian; Mulakan pemasangan; Mulakan semula dan boot dari cakera keras selepas pemasangan selesai.

Cara memanggil Docker LNMP Cara memanggil Docker LNMP Apr 15, 2025 am 11:15 AM

Docker LNMP Container Call Langkah: Jalankan bekas: Docker Run -D -Name LNMP -Container -P 80:80 -P 443: 443 LNMP -Stack Untuk mendapatkan IP Container: Docker Memeriksa LNMP -Container | GREP IPADDRESS ACCESS Laman web: http: // & lt; container ip & gt; /index.phpssh akses: docker exec -it lnmp -container bash akses mysql: mysql -u roo

Cara memasang cakera keras di centos Cara memasang cakera keras di centos Apr 14, 2025 pm 08:15 PM

Centos Hard Disk Mount dibahagikan kepada langkah -langkah berikut: Tentukan nama peranti cakera keras (/dev/sdx); Buat titik gunung (disyorkan untuk menggunakan /mnt /newdisk); laksanakan perintah gunung (mount /dev /sdx1 /mnt /newdisk); Edit fail /etc /fstab untuk menambah konfigurasi gunung tetap; Gunakan perintah UMount untuk menyahpasang peranti untuk memastikan bahawa tiada proses menggunakan peranti.

Apa yang Harus Dilakukan Setelah CentOs Berhenti Penyelenggaraan Apa yang Harus Dilakukan Setelah CentOs Berhenti Penyelenggaraan Apr 14, 2025 pm 08:48 PM

Selepas CentOS dihentikan, pengguna boleh mengambil langkah -langkah berikut untuk menanganinya: Pilih pengedaran yang serasi: seperti Almalinux, Rocky Linux, dan CentOS Stream. Berhijrah ke pengagihan komersial: seperti Red Hat Enterprise Linux, Oracle Linux. Menaik taraf ke CentOS 9 Stream: Pengagihan Rolling, menyediakan teknologi terkini. Pilih pengagihan Linux yang lain: seperti Ubuntu, Debian. Menilai pilihan lain seperti bekas, mesin maya, atau platform awan.

See all articles