Bagaimana untuk menyediakan replikasi tuan-hamba dalam Mysql5.7? Artikel berikut akan memperkenalkan kepada anda langkah-langkah untuk membina replikasi Mysql5.7-master-slave. Rakan yang memerlukan boleh mempelajarinya~
Untuk mengelakkan ketiadaan perkhidmatan dan memastikan keselamatan dan kebolehpercayaan data, kami perlu menggunakan sekurang-kurangnya dua atau lebih Lebih daripada satu pelayan diperlukan untuk menyimpan data pangkalan data, iaitu, kami perlu menyalin data dan menggunakannya pada berbilang pelayan yang berbeza Walaupun satu pelayan gagal, pelayan lain masih boleh meneruskan perkhidmatan
MySQL menyediakan fungsi Replikasi induk-hamba untuk meningkatkan ketersediaan perkhidmatan dan keselamatan dan kebolehpercayaan dataSeni bina satu tuan dan berbilang hamba:Replikasi induk-hamba bermakna pelayan dibahagikan kepada pelayan induk dan pelayan induk bertanggungjawab untuk membaca dan menulis. dan pelayan hamba hanya bertanggungjawab untuk membaca Master-hamba replikasi juga dipanggil tuan / hamba, tuan adalah tuan dan hamba adalah hamba, tetapi ia tidak wajib, iaitu hamba juga boleh menulis dan tuan. boleh membaca, tetapi secara amnya kita tidak melakukan ini.
2. Seni bina replikasi tuan-hamba
Berbilang tuan dan seni bina berbilang hamba :
Prinsip replikasi tuan-hamba:
1. Linux 版本 CentOS release 6.9 (Final)
Alamat muat turun2. 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
cd /usr/local/mysql mkdir data cd data #主 mkdir 3306 #从 mkdir 3307
3. Permulaan 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
4. Cipta fail konfigurasi my.cnf untuk setiap 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
Tukar ke direktori /usr/local/mysql-5.7.24/bin, gunakan perintah msyqld_safe untuk menentukan fail konfigurasi dan mulakan Perkhidmatan 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 &
7. Konfigurasi id unik pangkalan data
分别在各个实例内进行配置 如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;
客户端连接测试
7. Tetapan hos1.确定各个实例正常启动无误后进行主从配置
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编号,编号要唯一 建议和端口保持一致
加入完毕后启动各个实例
./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.查看主服务器状态
1.
# mysql主服务器默认初始值: # File:mysql-bin.000001 # Position:154 show master status;
3.如果主服务状态不是初始状态,需要重置状态
reset master;
需要登录到 3306|3307|3308的从机客户端
#在/usr/local/mysql/bin目录下执行 多台从机‘|’分隔 ./mysql -uroot -p -P3308|3309|3310 -h127.0.0.1
2.查看从机状态
#初始状态:Empty set show slave status;
3.若不是初始状态,重置一下
stop slave; #停止复制,相当于终止从服务器上的IO和SQL线程 reset slave;
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
相关学习推荐:mysql教程(视频)
Atas ialah kandungan terperinci Ajar anda langkah demi langkah cara menyediakan replikasi tuan-hamba dalam Mysql5.7. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!