Mysql5.7.18 のインストールとマスタースレーブレプリケーションの詳細なグラフィック説明

Mysql5.7.18 のインストールとマスタースレーブレプリケーションの詳細なグラフィック説明

CentOS6.7にmysql5.7.18をインストールする

1. /usr/localディレクトリに解凍する

# tar -zxvf mysql-5.7.18-linux-glibc2.5-i686.tar.gz -C /usr/local

2. mysql-5.7.18-linux-glibc2.5-i686フォルダの名前をmysqlに変更します。

# cd /usr/local
    # mv mysql-5.7.18-linux-glibc2.5-i686/mysql

3. 新しいmysqlユーザーグループとmysqlユーザーを作成する

# グループ追加mysql
    # ユーザー追加 -r -g mysql mysql

4. 新しいデータディレクトリを作成する

# cd /usr/local/mysql
    # mkdirデータ

5. 所有者を変更し、755を付与する

# cd /usr/local
    # chown -R mysql:mysql mysql/
    # chmod -R 755 mysql/

6. mysqldを初期化する

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

初期ルートパスワードを記録します: GjlI08>p4kDw

7. mysqldをサービスとして追加して起動する

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

デフォルトのMySQL設定ファイル/etc/my.cnfを作成し、図の内容を追加します。

# vim /etc/my.cnf

my.cnfを保存して終了し、mysqldを起動します。

# サービス mysqld を開始

起動が成功したことを示す次のメッセージが表示されます

MySQLが正常に起動したか確認する

# ps -ef|grep mysql

起動が成功したことを示す次のメッセージが表示されます

もちろん、mysqldのステータスを確認することもできます

# サービス mysqld ステータス

8. mysqlにログインし、rootパスワードを変更する

# cd /usr/local/mysql
    # ./bin/mysql -uroot –p

手順 6 で生成された初期パスワードを入力します。次のメッセージは、ログインが成功したことを示します。

ルートパスワードを変更する

mysql> パスワードの設定 = パスワード('123456');
    mysql> 権限をフラッシュします。

初回ログイン時にrootパスワードを変更しないと、データベースを操作する際に以下のエラーメッセージが表示されます。この場合、rootユーザーのパスワードを変更する必要があります。

エラー 1820 (HY000): このステートメントを実行する前に、ALTER USER ステートメントを使用してパスワードをリセットする必要があります。

9. MySQL をリモートからアクセス可能に設定する (ファイアウォールをオフにする必要があります。chkconfig iptables off: 自動起動をオフに設定し、service iptables sto: ファイアウォールをオフにします)

まずmysqlにログインする

 mysql> mysqlを使用する
    mysql> ユーザーを更新し、ホストを '192.168.0.4' に設定し、ユーザーを 'root' に設定します。
    mysql> 権限をフラッシュします。

192.168.0.4 は、ローカル MySQL にリモートでアクセスできるリモート IP アドレスです。任意の IP アドレスでローカル MySQL にアクセスしたい場合は、192.168.0.4 を % に置き換えるだけです。

 mysql> ユーザーを更新し、ホストを '%' に設定し、ユーザーを 'root' に設定します。

mysql マスタースレーブレプリケーション

MySQL は Windows ではマスター、Linux ではスレーブです。MySQL のバージョンは 5.7.18 です。Windows の IP アドレスは 192.168.0.4、Linux の IP アドレスは 192.168.0.223 です。

1. マスターでbinlogを有効にする

mysqlホームディレクトリでmy.iniファイルを見つけ(存在しない場合は新規作成)、次のように設定します。

[mysqld]
# basedir をインストールパスに設定します
ベースディレクトリ=D:\\mysql-5.7.18
# datadir をデータディレクトリの場所に設定します
データディレクトリ=D:\\mysql-5.7.18\\データ
ポート = 3306
log-bin = mysql-bin #[必須] バイナリ ログを有効にする server-id = 4 #[必須] 一意のサーバー ID。デフォルトは 1 ですが、IP の最後の 3 桁が望ましい expire-logs-days = 7 # ディスクがログでいっぱいになるのを防ぐため、バイナリ ログを 7 日間だけ保持する binlog-ignore-db = mysql # データベースはバックアップされない binlog-ignore-db = information_schema
binlog-ignore-db = パフォーマンススキーマ
binlog-ignore-db = sys
binlog-do-db=mybatis #コピーするデータベースの名前

log_binが正常に開かれたかどうかをテストする

mysql> '%log_bin%' のような変数を表示します。

以下の図が表示されます。log_binがONの場合は起動成功、OFFの場合は起動失敗となります。

2. マスター データベースにバックアップ アカウントを作成します。backup はユーザー名、% は任意のリモート アドレスを表します。次の例は、パスワード 1234 を持つ任意のリモート アドレス backup がマスター ホストに接続できることを示しています。

mysql> '1234' で識別される 'backup'@'%' に *.* 上のレプリケーション スレーブを許可します。
    mysql> mysqlを使用する
    mysql> ユーザーからユーザー、認証文字列、ホストを選択します。

先ほど作成したバックアップ アカウントを確認できます。

3. データをコピーする

MySQLサービスを再起動し、読み取りロックを設定します

 ネットストップMySQL
      ネットスタートMySQL

mysqlにログイン

mysql> 読み取りロック付きのテーブルをフラッシュします。

読み取りロックとは、一貫性のあるスナップショットを取得するために、読み取りのみが可能で更新はできないことを意味します。

マスターサーバー上の現在のバイナリログ名とオフセット値を表示します。

 mysql> マスターステータスを表示 \G 

コピーのプロセスは次のとおりです。

ファイルはレプリケーション機能を実装するログ、つまり上図のバイナリ ログを表します。位置は、バイナリ ログ ファイルのオフセット以降のすべてのログがスレーブに同期され、オフセットより前のログは手動でインポートする必要があることを意味します。

マスターからデータをエクスポートし、スレーブにインポートする

別のコマンドウィンドウを開き、mysqldumpコマンドを使用してデータをエクスポートします。

d:\a.txt をスレーブにコピーし、MySQL データベースにインポートします。スレーブに mybatis データベースが存在しない場合は、まず作成してからインポートします。

エクスポートはmysqldump、インポートはmysql

4. スレーブ(192.168.0.223)を構成する

スレーブはLinux環境にあり、MySQL設定ファイルは/etc/my.cnfです。存在しない場合は、次の内容で新規に作成します。

[mysqld]
ベースディレクトリ=/usr/local/mysql
データディレクトリ=/usr/local/mysql/data
ソケット=/tmp/mysql.sock
ユーザー=mysql
ポート=3306
ログ bin = mysql bin
サーバーID=223

スレーブデータベースを再起動する

 # サービスmysqldを再起動します

スレーブデータベースにログインし、次の設定を行います

mysql> スレーブを停止します。

mysql>マスターを次のように変更します

マスターホスト='192.168.0.4',

master_user='バックアップ',

マスターパスワード='1234',

マスターログファイル='mysql-bin.000005',

マスターログ位置=601;

各パラメータの意味:

master_host レプリケーションを実装するホストのIPアドレス

master_userは、レプリケーションのためにマスターのmysqlサーバーにリモートでログインするためのユーザーであり、手順2で設定されます。

master_passwordは、ステップ2で設定されたリモートログインマスターのmysqlインターフェースのレプリケーションを実装します。

master_log_fileは、ステップ3の赤いボックス内のbinlogログファイルのレプリケーションを実装します。

master_log_posは、ステップ3の赤いボックス内のコピーされたbinlogログファイルのオフセットを実装します。

mysql> スレーブを起動します。

スレーブマシンのステータスを確認する

mysql> スレーブステータスを表示 \G

図にマークされた2つの項目の値がYesであれば、スレーブ設定が成功したことを意味します

5. メインデータベースの読み取りロックをオフにする

mysql> テーブルのロックを解除します。

6. テスト

問題がなければ、マスター上のmybatisデータの操作はスレーブ上のmybatisに同期されます。

文書アドレス: ここをクリック

要約する

上記は、編集者が紹介したMysql5.7.18のインストールとマスタースレーブレプリケーションの詳細なグラフィック説明です。皆様のお役に立てれば幸いです。ご質問がある場合は、メッセージを残してください。編集者がすぐに返信します。

以下もご興味があるかもしれません:
  • MySQL マスタースレーブレプリケーションの原理と実践の詳細な説明
  • Windows で MySQL マスター スレーブ レプリケーションを構成する方法
  • Docker ベースの MySQL マスタースレーブレプリケーション環境を構築するための実装手順
  • MySQL のマスタースレーブレプリケーションと読み取り書き込み分離の原理と使用法の詳細な説明
  • MySQL マスタースレーブレプリケーションの役割と動作原理の詳細な説明
  • MySQLデータベースのマスタースレーブレプリケーションの長い遅延に対する解決策
  • MySQL マスタースレーブレプリケーション 読み書き分離の設定方法の詳細説明
  • MySql マスタースレーブレプリケーションを実装する Docker 方式の詳細説明 (実践編)
  • MySQL 5.7.18 マスタースレーブレプリケーション設定(マスター 1 台とスレーブ 1 台)チュートリアルの詳細な説明
  • MySQL マスタースレーブレプリケーションプロセスの詳細な説明
  • MySQL のマスター スレーブ レプリケーション オプションをオンラインで変更する方法

<<:  Dockerプライベート倉庫の構築と利用の詳細説明

>>:  WeChatアプレットはシンプルな計算機を実装する

推薦する

MySQL Limitクエリのパフォーマンスを向上させる方法

MySQL データベース操作では、一部のクエリを実行するときにデータベース エンジンが完全なテーブル...

Vue が価格カレンダー効果を実現

この記事では、価格カレンダー効果を実現するためのVueの具体的なコードを例として紹介します。具体的な...

Docker の win ping 失敗コンテナ回避ガイド

win docker-desktopを使ってコンテナ開発に接続し、ネットワーク上で色々試してみたいと...

Docker nginxは1つのホストを実装して複数のサイトを展開します

とあるサイトからレンタルした仮想マシンの有効期限が近づいており、更新料が200元以上かかります。Al...

JavaScript 開発における標準コミットメッセージの重要性の詳細な説明

目次標準コミットメッセージの重要性コミットするコミットリント依存関係をインストールする.commit...

CSS継承方法

次の背景画像を持つ div があるとします。 次の反射効果を作成します。 方法はたくさんありますが、...

js SMS認証コード入力ボックスを手動で実装する

序文この記事では、私が手動で実装したフロントエンドの一般的な SMS 認証コード入力コンポーネントと...

Vueはログインジャンプを実装する

この記事では、ログインジャンプを実装するためのVueの具体的なコードを例として紹介します。具体的な内...

Mysqlは実行中のトランザクションを照会し、ロックを待機する方法

navicatを使用してテストと学習を行います。まず、 set autocommit = 0;を使用...

Bツリー挿入プロセスの概要

前回の記事 https://www.jb51.net/article/154153.htm では、B...

Vue3+TypeScriptはaxiosをカプセル化し、リクエスト呼び出しを実装します

まさか、2021年になってもTypeScriptについて聞いたことがない人がいるなんて?プロジェクト...

親子コンポーネントの通信を解決するための3つのVueスロット

目次序文環境の準備カテゴリコンポーネントアプリのコンポーネント1. デフォルトスロット2. 名前付き...

CentOS で yum を使用して rabbitmq-server をインストールする方法

RabbitMQをインストールする前にSocatをインストールする必要があります。そうしないと、Ra...

Nginx でアンチホットリンクを設定するための手順を完了する

必要:通常、サイト側は、ウェブサイト上の動画や写真が盗まれるのを防ぎたいと考えています。結局のところ...

Node.js で MySQL データベースにバッチデータを挿入する方法

プロジェクト(nodejs)では、一度に複数のデータをデータベースに挿入する必要があります。データベ...