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.
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.
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 ->close(); # Tutup Sambungan ke pelayan utama
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.
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!