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!
Replikasi tuan-hamba boleh merealisasikan sandaran pangkalan data dan pemisahan baca-tulis:
2. seni bina: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
tutorial video mysql
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:
Seni bina berbilang tuan dan berbilang hamba:
Prinsip replikasi tuan-hamba:
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
1. Nyahzip mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz1. Linux 版本 CentOS release 6.9 (Final)
2. mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz
#/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
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 numactl
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 'root'@'localhost' identified by 'root'; #授权远程访问(这样远程客户端才能访问) grant all privileges on *.* to root@'%' identified by 'root'; #刷新配置 flush privileges;
Tetapan hos客户端连接测试
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 'copy'@'%' identified by 'root';
2.查看主服务器状态
# mysql主服务器默认初始值: # File:mysql-bin.000001 # Position:154 show master status;
change master to master_host='主机ip',master_user='copy', master_port=主机端口,master_password='连接主机密码', master_log_file='mysql-bin.000001',master_log_pos=154;
5.执行 开始复制命令
start slave;
6.查看从机状态
show slave status \G;
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!