Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk melaksanakan kluster pangkalan data MySQL dalam PHP

Bagaimana untuk melaksanakan kluster pangkalan data MySQL dalam PHP

王林
王林asal
2023-05-16 08:31:35859semak imbas

Dengan pembangunan aplikasi Internet yang berterusan, keperluan untuk prestasi pangkalan data dan ketersediaan tinggi semakin tinggi, dan kelompok pangkalan data telah menjadi penyelesaian penting.

MySQL ialah salah satu pangkalan data hubungan yang paling banyak digunakan pada masa ini, dan PHP ialah bahasa yang sangat biasa digunakan dalam pembangunan web Bagaimana untuk menggabungkan PHP dengan kluster pangkalan data MySQL untuk mencapai prestasi tinggi dan ketersediaan tinggi kemudian menjadi isu.

Artikel ini akan memperkenalkan cara menggunakan PHP untuk melaksanakan kluster pangkalan data MySQL.

1. Gambaran keseluruhan kluster pangkalan data MySQL

Kluster pangkalan data MySQL merujuk kepada persekitaran kluster yang terdiri daripada berbilang pelayan pangkalan data MySQL disepadukan ke dalam satu keseluruhan melalui teknologi perisian, yang meningkatkan kecekapan sistem pangkalan data.

Terdapat dua seni bina kluster biasa, satu ialah mod replikasi induk-hamba, dan satu lagi ialah mod selari berbilang hos.

Mod replikasi master-slave dilaksanakan dengan menggunakan fungsi replikasi MySQL One MySQL digunakan sebagai pangkalan data induk, dan MySQL lain digunakan sebagai pangkalan data hamba pangkalan data hamba dalam masa nyata, dan pangkalan data hamba adalah baca sahaja , tanpa menulis, sekali gus meningkatkan prestasi baca dan ketersediaan pangkalan data.

Mod selari berbilang hos menggunakan berbilang MySQL sebagai pangkalan data utama untuk dijalankan serentak dalam gugusan yang sama, dan menyegerakkan data antara satu sama lain melalui protokol rangkaian untuk mencapai ketersediaan dan kebolehskalaan data yang tinggi.

2. Bina kluster pangkalan data MySQL

Untuk membina kluster pangkalan data MySQL, anda perlu terlebih dahulu memahami seni bina pangkalan data MySQL dan prinsip replikasi, dan kemudian anda boleh menggabungkan kluster MySQL dengan lebih baik dengan lebih baik. PHP.

  1. Prinsip replikasi MySQL

Fungsi replikasi MySQL dilaksanakan melalui log binlog dan log relaylog Binlog terutamanya merekodkan operasi pelayan MySQL, termasuk penambahan, pemadaman, Tunggu, relaylog terutamanya menukar data asal ke dalam format data yang boleh diterima oleh pelayan hamba dan menghantarnya kepada pelayan hamba.

  1. Konfigurasi kluster MySQL

Masukkan arahan vi /etc/my.cnf dalam terminal untuk membuka fail konfigurasi MySQL.

Tambahkan kod berikut di bawah bahagian [mysqld]:

server-id=1 # Nombor pelayan
log-bin=mysql-bin # Dayakan log binari
binlog- ignore -db=information_schema # Non-logging database
binlog-ignore-db=mysql

Tambah kod berikut di bawah bahagian [mysqld] Alamat di sini ialah alamat pangkalan data utama yang anda mahu sambung ke:

log-slave-updates=1 # Dayakan log pelayan hamba untuk disalin ke pelayan hamba lain
relay-log=mysql-relay-bin # Dayakan log geganti
relay-log -index=mysql-relay -bin.index
master-info-file=master.info
relay-info-file=relay-log.info
read_only=1 # Mod baca sahaja, hamba pelayan tidak mengambil bahagian dalam operasi tulis perpustakaan induk
server-id=2 # Nombor pelayan
log-bin=mysql-bin # Dayakan log binari
binlog-do-db=mydata # Nama pangkalan data yang akan direplikasi
replicate-ignore-db= information_schema # Replikat pangkalan data yang diabaikan
replicate-ignore-db=mysql
relay-log-recovery=ON

Fail konfigurasi di atas untuk mod replikasi tuan-hamba, fail konfigurasi untuk mod selari berbilang hos Anda boleh merujuk kepada dokumentasi rasmi atau maklumat lain.

3. Cara menyambungkan PHP ke kluster MySQL

PHP boleh menggunakan sambungan mysqli untuk menyambung ke kluster MySQ, yang merupakan versi pangkalan data MySQL yang dipertingkatkan dan menyediakan prestasi dan fungsi yang lebih baik .

Berikut ialah contoh kod PHP yang menggunakan sambungan mysqli untuk menyambung ke kluster MySQL:

$mysqli = new mysqli("mysql_server_1", "user", "password", "mydatabase"); # Sambung ke pelayan utama

jika ($mysqli->connect_errno) { # Sambungan gagal
echo "Gagal menyambung ke pelayan utama MySQL: (" . $mysqli-> ;connect_errno . ") " . $ mysqli->connect_error;
} else { # Berjaya disambungkan
echo "Berjaya disambungkan ke pelayan utama MySQL. Maklumat hos: " $mysqli->host_info >";
}

$mysqli->query("CREATE TABLE mytable (id INT, name VARCHAR(255))"); # Buat jadual pada pelayan utama

$mysqli ->close(); # Tutup Sambungan ke pelayan utama

$mysqli = new mysqli("mysql_server_2", "user", "password", "mydatabase"); 🎜>

jika ($mysqli-> ;connect_errno) { # Sambungan gagal

echo "Gagal menyambung ke pelayan hamba MySQL: (" . $mysqli->connect_errno . ") " $mysqli-> connect_error;

} else { # Sambungan berjaya
echo "Berjaya disambungkan ke pelayan hamba MySQL. Maklumat hos: " $mysqli->host_info ;
}

$mysqli->query("SELECT * FROM mytable"); # Tanya jadual daripada pelayan hamba
$mysqli->close(); # Tutup sambungan dengan pelayan hamba

Dalam contoh kod di atas, pelayan induk disambungkan dahulu, dan kemudian pelayan induk disambungkan ke pelayan hamba Jadual dibuat pada pelayan, dan kemudian pelayan hamba disambungkan melalui sambungan mysqli, dan jadual ditanya. pada pelayan hamba.

4. Kesimpulan

Kluster MySQL ialah penyelesaian prestasi dan ketersediaan yang sempurna, dan PHP, sebagai bahasa pengaturcaraan Web yang digunakan secara meluas, boleh menyambung dengan lebih baik kepada kluster MySQL melalui sambungan mysqli dan mencapai prestasi tinggi. prestasi dan matlamat ketersediaan tinggi.

Melalui pengenalan dalam artikel ini, amat berharga bagi pembangun PHP untuk mempelajari cara membina dan menyambungkan kluster MySQL.

Atas ialah kandungan terperinci Bagaimana untuk melaksanakan kluster pangkalan data MySQL dalam PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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