MySQL8.0.33 マスター/スレーブ レプリケーション構成レコード

公式ウェブサイト: https://dev.mysql.com/downloads/mysql/
8.0.33
ここに画像の説明を挿入

1. ダウンロード

オンラインでダウンロードするか、ローカルにダウンロードしてアップロードします

cd /usr/local

wget ダウンロード ツールを準備します。

yum install wget -y
wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.33-el7-x86_64.tar.gz

ここに画像の説明を挿入
ダウンロード


2.解凍する

tar -zxvf mysql-8.0.33-el7-x86_64.tar.gz -C /usr/local/

3.重命名

mv mysql-8.0.33-el7-x86_64 mysql

4. ストレージデータファイルの作成

mkdir mysql/data

5. ユーザーグループを設定し、権限を与える

groupadd mysql
useradd -r -g mysql mysql
chown -R mysql:mysql /usr/local/mysql/
chmod -R 755 /usr/local/mysql

6. MySQLの初期化

MySQL bin ディレクトリに入る

cd mysql/bin

初期化してパスワードを取得する

./mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql

./mysqld: 共有ライブラリのロード中にエラーが発生しました: libuma.so.1:
共有オブジェクト ファイルを開けません: そのようなファイルまたはディレクトリはありません
报错,缺依赖::::
yum install -y libaio
yum -y install umactl
再初開始化
./mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql

初期パスワード

7. 設定ファイル

vi /etc/my.cnf
[client]
#password       = your_password
port               = 3306
socket          = /usr/local/mysql/data/mysql.sock
default-character-set = utf8mb4

[mysql]  
default-character-set = utf8mb4

[mysqld]  
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_general_ci
init_connect = 'SET NAMES utf8mb4'

# 服务器唯一id,默认为1,值范围为1~2^32−1. ;主数据库和从数据库的server-id不能重复
server-id=1
# 设置同步的binary log二进制日志文件名前缀,默认是binlog
log-bin=mysql-bin
# 可选配置
# 是否只读 0读写 1只读
read-only=0
# 禁用管理员写操作
# super-read-only=1
# 需要主从复制的数据库 ,如多个则重复配置(不设置则都同步)
# replicate-do-db=user_db.%
#屏蔽系统库同步,如果需要对某个数据库不进行同步则追加以下配置,配置对应的数据库名称,多个的话配置多行
replicate_wild_ignore_table=mysql.%
replicate_wild_ignore_table=information_schema.%
replicate_wild_ignore_table=performance_schema.%

port            = 3306
socket          = /usr/local/mysql/data/mysql.sock
skip-external-locking
key_buffer_size = 16M
max_allowed_packet = 1M
table_open_cache = 64
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M
datadir = /usr/local/mysql/data

[mysqldump]
quick
max_allowed_packet = 16M

[mysql]
no-auto-rehash

[myisamchk]
key_buffer_size = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M

[mysqlhotcopy]
interactive-timeout


8.MySQLを起動する

/usr/local/mysql/support-files/mysql.server start

9. ソフト接続を設定し、MySQL を再起動します。

ln -s /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql
ln -s /usr/local/mysql/mysql.sock /var/mysql.sock 
service mysql restart

10. ログインしてパスワードを変更する

mysql -u root -p

上記の初期化で取得した初期パスワードを入力してください

暗号化を変更します。

alter user 'root'@'localhost' identified by '123456';

11. リモート接続を開く

use mysql;
update user set user.Host='%' where user.User='root';
flush privileges;

ここではローカルホストが % に変更されているため、フォローアップ
alter user 'root'@'%'identified by '123456';
flash権限;

12. MySQL への接続をテストする接続ツール

サーバー上のポートを解放し、
指定したポートを開くことを忘れないでください。
firewall-cmd --zone=public --add-port=3306/tcp --permanent
–zone #Scope
–add-port=3306/tcp #Add port、形式は次のとおりです: port /communication Protocol
–permanent #永続的に有効ですが、このパラメータがないと再起動後に失敗します。
テスト接続
その後、MySQL を終了して exit を使用し、スレーブ サーバーが正常に完了するまで待ってから、テーブル テストを作成します。

exit

13. ブート構成

サービス ファイルを init.d にコピーし、名前を mysqld に変更します。

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

実行可能権限を付与する

chmod +x /etc/init.d/mysqld

サービスを追加する

chkconfig --add mysqld

サービスリストを表示

chkconfig --list

注: mysql サービスが表示され、3、4、5 がすべて開いていれば成功です。閉じていれば成功です。

chkconfig --level 345 mysqld on

14. スレーブサーバーの構成

インストールプロセスは上記と同じですが、構成が若干異なります。

vi /etc/my.cnf
# 服务器唯一id,默认为1,值范围为1~2^32?1. ;主数据库和从数据库的server-id不能重复
server-id=2
# 设置同步的binary log二进制日志文件名前缀,默认是binlog
log-bin=mysql-bin
# 可选配置
# 是否只读 0读写 1只读
read-only=1
# 禁用管理员写操作
# super-read-only=1
# 需要主从复制的数据库 ,如多个则重复配置(不设置则都同步)
# replicate-do-db=user_db.%
#屏蔽系统库同步,如果需要对某个数据库不进行同步则追加以下配置,配置对应的数据库名称,多个的话配置多行
replicate_wild_ignore_table=mysql.%
replicate_wild_ignore_table=information_schema.%
replicate_wild_ignore_table=performance_schema.%

権限

15. 主なライブラリ構成

主服务器MySQLにログインする

mysql -uroot -p

マスター/スレーブレプリケーション権限を付与する

GRANT REPLICATION SLAVE ON *.* TO 'root'@'%';

マスターデータベース
コマンドを使用して、バイナリ ログ ターゲットを表示します。

show master status;

目標

16. スレーブライブラリの設定

从库服务器MySQLにログインする

mysql -uroot -p


8.0.23 以降のメイン サーバーの構文 (ログ ファイルとメイン サーバーの場所の名前が一貫している必要があることに注意してください) (以前の構文と互換性があります) を関連付けます。
CHANGE REPLICATION SOURCE TO SOURCE_HOST='192.168.20.20',SOURCE_USER='root',SOURCE_PASSWORD='123456',SOURCE_LOG_FILE='mysql-bin.000003',SOURCE_LOG_POS=369;

8.0.23 より前の構文

CHANGE REPLICATION MASTER TO MASTER_HOST='*.*.*.*',MASTER_USER='***',MASTER_PASSWORD='**',MASTER_LOG_FILE='**',MASTER_LOG_POS=**;

MASTER_HOST マスター データベースの IP アドレス
MASTER_USER 接続マスター データベースのユーザー名
MASTER_PASSWORD 接続マスター データベースのパスワード
MASTER_LOG_FILE バイナリ ログ ファイル名
MASTER_LOG_POS バイナリ ログ ファイルの場所

メインライブラリ接続を構成する
同期操作をオンにします。

8.0.22版本之后(兼容之前的命令)
start replica; 
8.0.22版本之前
start slave;

同期操作を有効にする
マスター/スレーブ レプリケーションのステータスを表示します。

show replica status\G;

UUID
この時点で、UUID の競合が見つかり、UUID を変更する必要があり、
MySQL が終了します。

exit;

通常は /mysql/data/auto.cnf ファイル内にあります

vi /usr/local/mysql/data/auto.cnf

数値をランダムに変更し (長さは固定されており、欠落している場合は起動時にエラーが報告されます。数値をランダムに調整することをお勧めします)、ESC :wq を押して保存して終了し、MySQL を再起動します。
UUID

MySQL を再起動します。

service mysql restart

次に、同期ステータスを確認します

show replica status\G;

はい

17. テスト:

主服务器新しいライブラリの作成、ライブラリの使用、新しいテーブルの作成、データの挿入、テーブルのクエリ、テーブル データのクエリ

CREATE database test;
use test;
CREATE TABLE `tb_user`  (
  `id` int(0) NOT NULL AUTO_INCREMENT,
  `name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
  `sex` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
INSERT INTO `tb_user` VALUES (1, 'coisini', '0');
show tables;
select * from tb_user;

新しいデータベース
从服务器同期しているかどうかを確認する

use test;
show tables;
select * from tb_user;

データ

概要:
マスター データベースのデータ変更をスレーブ データベースに同期して、マスターとスレーブのデータの一貫性を確保します。これは、データのバックアップ、障害の移行、読み取り/書き込みの分類に使用でき、データベースの読み取り/書き込みの負荷を軽減します。単一のデータベース。
原則:
メイン ライブラリは、データの変更をバイナリ ログ ファイル binlog に記録します。
スレーブ ライブラリはメイン ライブラリに接続し、binlog ログを読み取り、自身のリレー ログをリレーログに書き込みます。
スレーブはリレー ログを再実行し、自身のデータを変更して反映します。


18. さらに、Windows でマスター/スレーブ レプリケーションを実装するには、最初に 2 つの MySQL をデプロイします。

複数の MySQL のローカル デプロイメントを参照してください。私のローカル構成は以下に掲載されています。
メイン サーバー構成を参照できます。

[mysqld]
# 设置3307端口
port=3307
# 服务器唯一id,默认为1,值范围为1~2^32−1. ;主数据库和从数据库的server-id不能重复
server-id=1
# 主从数据库配置核心部分
# 设置同步的binary log二进制日志文件名前缀,默认为binlog;在MySQL 8.0中,无论是否指定--log bin选项,默认情况下都会启用二进制日志记录,并将log_bin系统变量设置为ON。
log-bin=mysql-bin
# 可选配置
# 是否只读 0读写 1只读
read-only=0
# 需要主从复制的数据库,如多个则重复配置
# binlog-do-db=user_db
# 屏蔽系统库同步
binlog-ignore-db=mysql
binlog-ignore-db=information_schema
binlog-ignore-db=performance_schema
# 设置mysql的安装目录
basedir=F:/MySQL/mysql-8.0.26-winx64
# 设置mysql数据库的数据的存放目录
datadir=F:/MySQL/mysql-8.0.26-winx64/data
# 允许最大连接数
max_connections=200
# 允许连接失败的次数。
max_connect_errors=10
# 服务端使用的字符集默认为utf8mb4
character-set-server=utf8mb4
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证
#mysql_native_password
default_authentication_plugin=mysql_native_password
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8mb4
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3307
default-character-set=utf8mb4

サーバー構成から:

[mysqld]
# 登录跳过权限检查
# skip-qrant-tables
# 从服务器设置3308端口
port=3308
# 服务器唯一id,默认为1,值范围为1~2^32−1. ;主数据库和从数据库的server-id不能重复
server-id=2
# 设置同步的binary log二进制日志文件名前缀,默认是binlog
log-bin=mysql-bin
# 可选配置
# 是否只读 0读写 1只读
read-only=1
# 禁用管理员写操作
# super-read-only=1
# 需要主从复制的数据库 ,如多个则重复配置
# replicate-do-db=user_db.%
#屏蔽系统库同步,如果需要对某个数据库不进行同步则追加以下配置,配置对应的数据库名称,多个的话配置多行
replicate_wild_ignore_table=mysql.%
replicate_wild_ignore_table=information_schema.%
replicate_wild_ignore_table=performance_schema.%
# 设置从服务器mysql的安装目录
basedir=F:/MySQL/mysql-8.0.26-winx64-s1
# 设置从服务器mysql数据库的数据的存放目录
datadir=F:/MySQL/mysql-8.0.26-winx64-s1/data
# 允许最大连接数
max_connections=200
# 允许连接失败的次数。
max_connect_errors=10
# 服务端使用的字符集默认为utf8mb4
character-set-server=utf8mb4
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证
#mysql_native_password
default_authentication_plugin=mysql_native_password
[mysql]
# 设置从服务器mysql客户端默认字符集
default-character-set=utf8mb4
[client]
# 设置从服务器mysql客户端连接服务端时默认使用的端口
port=3308
default-character-set=utf8mb4

手順は同様で、最初に 2 つの MySQL があり、次にマスター/スレーブ構成を構成し、同期が成功したかどうかをクエリし (2 つが「はい」)、テスト用に新しいデータベースを作成します。


完了しました、読んでいただきありがとうございます、お役に立てれば幸いです~
END


おすすめ

転載: blog.csdn.net/qq_44870331/article/details/130251438