Rumah  >  Artikel  >  pangkalan data  >  Perbincangan ringkas tentang cara menyediakan replikasi tuan-hamba dalam Mysql5.7?

Perbincangan ringkas tentang cara menyediakan replikasi tuan-hamba dalam Mysql5.7?

青灯夜游
青灯夜游ke hadapan
2021-09-06 18:58:382286semak imbas

Bagaimana untuk menyediakan replikasi tuan-hamba dalam Mysql5.7? Artikel berikut akan membawa anda melalui langkah-langkah untuk membina replikasi tuan-hamba dalam Mysql5.7 Saya harap ia akan membantu anda!

Perbincangan ringkas tentang cara menyediakan replikasi tuan-hamba dalam Mysql5.7?

1. Gambaran Keseluruhan

Replikasi tuan-hamba boleh merealisasikan sandaran pangkalan data dan pemisahan baca-tulis:

Untuk mengelakkan ketiadaan perkhidmatan dan memastikan keselamatan dan kebolehpercayaan data, kami perlu menggunakan sekurang-kurangnya dua atau lebih pelayan untuk menyimpan data pangkalan data, iaitu, kami perlu menyalin data dan menggunakannya pada berbilang pelayan. Pada pelayan yang berbeza, walaupun satu pelayan gagal, pelayan lain masih boleh terus menyediakan perkhidmatan
MySQL menyediakan fungsi replikasi master-slave untuk meningkatkan ketersediaan perkhidmatan dan keselamatan dan kebolehpercayaan Replikasi master-slave bermakna pelayan dibahagikan kepada pelayan induk dan pelayan hamba bertanggungjawab untuk membaca dan menulis, dan pelayan hamba hanya bertanggungjawab untuk membaca master/hamba. Tuan adalah tuan dan hamba adalah hamba, tetapi ia tidak wajib, maksudnya, hamba juga boleh menulis, dan tuan juga boleh membaca, tetapi secara amnya kita tidak melakukan ini. [Cadangan berkaitan:

tutorial video mysql

]

2. seni bina:

Seni bina berbilang tuan dan berbilang hamba:
Perbincangan ringkas tentang cara menyediakan replikasi tuan-hamba dalam Mysql5.7?
Prinsip replikasi tuan-hamba:
Perbincangan ringkas tentang cara menyediakan replikasi tuan-hamba dalam Mysql5.7?Apabila data pada pelayan induk berubah, perubahan akan ditulis pada fail log peristiwa binari
Pelayan hamba salve akan mengesan log binari pada pelayan induk dalam selang masa tertentu , mengesan sama ada ia telah berubah Jika dikesan bahawa log peristiwa binari pelayan utama telah berubah, mulakan Benang I/O untuk meminta log peristiwa binari induk

Pada masa yang sama. masa, pelayan utama induk menyediakan setiap Benang I/O memulakan Benang pembuangan untuk menghantar log peristiwa binari kepadanya
  1. pelayan hamba hamba menyimpan log peristiwa binari yang diterima ke fail log geganti tempatannya sendiri
  2. pelayan hamba salve Mulakan Benang SQL untuk membaca log perduaan daripada log geganti dan memainkannya semula secara setempat untuk menjadikan datanya konsisten dengan pelayan utama
  3. Akhir sekali, Benang I/O dan Benang SQL akan memasuki tidur; nyatakan dan tunggu masa berikutnya mereka dikejutkan
  4. 3 Pembinaan satu tuan dan berbilang hamba
  5. Persekitaran bangunan:

<.>

Alamat muat turun

1. Nyahzip mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz
1. Linux 版本 CentOS release 6.9 (Final)
2. mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz

2. Buat direktori data berbilang contoh

#/usr/local下解压
tar xzvf mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz
#重命名文件
mv mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz mysql

3 berlaku, laksanakan

cd /usr/local/mysql
mkdir data
cd data
#主
mkdir 3306
#从
mkdir 3307

Perbincangan ringkas tentang cara menyediakan replikasi tuan-hamba dalam Mysql5.7?
4 Cipta fail konfigurasi my.cnf untuk setiap pangkalan data

#mysql 安装bin目录下执行
#initialize-insecure 表示不生成MySQL数据库root用户的随机密码,即root密码为空

#初始化3306
./mysqld --initialize-insecure --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data/3306 --user=mysql
#初始化3307
./mysqld --initialize-insecure --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data/3307 --user=mysql


yum install libaio-devel.x86_64
yum -y install numactlPerbincangan ringkas tentang cara menyediakan replikasi tuan-hamba dalam Mysql5.7?

5. 🎜>

6. Konfigurasi permulaan pangkalan data注意:
1.建议在linux下创建文件防止windows 与 linux 编码不一致
2.不同的实例下配置要修改端口号
3.将修改好的my.cnf分别放至3306、3307文件夹内

[client]
port        = 3306
socket      = /usr/local/mysql/data/3306/mysql.sock
default-character-set=utf8

[mysqld]
port    = 3306
socket  = /usr/local/mysql/data/3306/mysql.sock
datadir = /usr/local/mysql/data/3306
log-error = /usr/local/mysql/data/3306/error.log
pid-file = /usr/local/mysql/data/3306/mysql.pid

character-set-server=utf8
lower_case_table_names=1
autocommit = 1

log-bin=mysql-bin
server-id=3306

7 🎜>
切换到/usr/local/mysql-5.7.24/bin目录下,使用 msyqld_safe 命令指定配置文件并启动MySQL服务:

#其中 --defaults-file 是指定配置文件,& 符合表示后台启动
./mysqld_safe --defaults-file=/usr/local/mysql/data/3306/my.cnf &
./mysqld_safe --defaults-file=/usr/local/mysql/data/3307/my.cnf &


分别在各个实例内进行配置 如3306:

#客户端连接
./mysql -uroot -p -P3306 -h127.0.0.1
#修改Mysql密码
alter user &#39;root&#39;@&#39;localhost&#39; identified by &#39;root&#39;;
#授权远程访问(这样远程客户端才能访问)
grant all privileges on *.* to root@&#39;%&#39; identified by &#39;root&#39;;
#刷新配置
flush privileges;

Tetapan hos客户端连接测试
Perbincangan ringkas tentang cara menyediakan replikasi tuan-hamba dalam Mysql5.7?

1.确定各个实例正常启动无误后进行主从配置
2.关闭实例分别在各个实例的my.cnf文件加入以下配置

#/usr/local/mysql/bin 关闭实例
./mysqladmin -uroot -p -P3307 -h127.0.0.1 shutdown
./mysqladmin -uroot -p -P3306 -h127.0.0.1 shutdown

#新加的配置
log-bin=mysql-bin   	#表示启用二进制日志
server-id=3307 		#表示server编号,编号要唯一 建议和端口保持一致

加入完毕后启动各个实例7 1.

./mysqld_safe --defaults-file=/usr/local/mysql/data/3306/my.cnf &

./mysqld_safe --defaults-file=/usr/local/mysql/data/3307/my.cnf &


1.在主服务器上创建复制数据的账号并授权

#在/usr/local/mysql/bin目录下执行 
 ./mysql -uroot -p -P3306 -h127.0.0.1
 grant replication slave on *.* to &#39;copy&#39;@&#39;%&#39; identified by &#39;root&#39;;

2.查看主服务器状态

# mysql主服务器默认初始值:
#			File:mysql-bin.000001
#			Position:154

show master status;

change master to 
master_host=&#39;主机ip&#39;,master_user=&#39;copy&#39;,
master_port=主机端口,master_password=&#39;连接主机密码&#39;,
master_log_file=&#39;mysql-bin.000001&#39;,master_log_pos=154;

5.执行 开始复制命令

start slave;

6.查看从机状态

show slave status \G;

Perbincangan ringkas tentang cara menyediakan replikasi tuan-hamba dalam Mysql5.7?
7.测试主从复制

在主数据库中进行创建表,从库同步就算搭建成功了!
Perbincangan ringkas tentang cara menyediakan replikasi tuan-hamba dalam Mysql5.7?
若你在从库进行写操作,则从服务器不再同步主库数据,在从库中执行此命令即可解决!

stop slave;
set global sql_slave_skip_counter =1;
start slave;
show slave status\G;

若主从复制速度较慢的话,执行此命令

 slave-parallel-type=LOGICAL_CLOCK
 slave-parallel-workers=16
 master_info_repository=TABLE
 relay_log_info_repository=TABLE
 relay_log_recovery=ON

更多编程相关知识,请访问:编程入门!!

Atas ialah kandungan terperinci Perbincangan ringkas tentang cara menyediakan replikasi tuan-hamba dalam Mysql5.7?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:csdn.net. Jika ada pelanggaran, sila hubungi admin@php.cn Padam