目次
-
- 1. ダウンロード
- 2.解凍する
- 3.重命名
- 4. ストレージデータファイルの作成
- 5. ユーザーグループを設定し、権限を与える
- 6. MySQLの初期化
- 7. 設定ファイル
- 8.MySQLを起動する
- 9. ソフト接続を設定し、MySQL を再起動します。
- 10. ログインしてパスワードを変更する
- 11. リモート接続を開く
- 12. MySQL への接続をテストする接続ツール
- 13. ブート構成
- 14. スレーブサーバーの構成
- 15. 主なライブラリ構成
- 16. スレーブライブラリの設定
- 17. テスト:
- 18. さらに、Windows でマスター/スレーブ レプリケーションを実装するには、最初に 2 つの MySQL をデプロイします。
公式ウェブサイト: https://dev.mysql.com/downloads/mysql/
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 を変更する必要があり、
MySQL が終了します。
exit;
通常は /mysql/data/auto.cnf ファイル内にあります
vi /usr/local/mysql/data/auto.cnf
数値をランダムに変更し (長さは固定されており、欠落している場合は起動時にエラーが報告されます。数値をランダムに調整することをお勧めします)、ESC :wq を押して保存して終了し、MySQL を再起動します。
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