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アプレットはシンプルな計算機を実装する

推薦する

CentOS 8 Zabbix 4.4 インストール ガイド

Zabbix サーバー環境プラットフォームZABBIX バージョン 4.4セントOS8 MySQL ...

Linux サービス管理の 2 つの方法、service と systemctl の詳細な説明

1.サービスコマンドサービスコマンドは実際には/etc/init.dディレクトリに移動し、関連プログ...

Centos8 で Docker を使用して Django プロジェクトをデプロイする詳細なチュートリアル

導入この記事では、django + uwsgi + nginx デプロイメントを使用して、Docke...

よく使われるCSSカプセル化方法の概要

1. pc-reset PCスタイルの初期化 /* 正規化.css */ html{ 行の高さ: 1...

DockerでのinfluxDB分散時系列データベースのインストールと関連操作について簡単に説明します。

influxDB の紹介influxDB は分散型時系列データベースです。 cAdvisor はリ...

nginx を使用して http を https に変換するサンプルコード

最近、小さなプログラムを書いています。その小さなプログラムの公式ウェブサイトはhttpsを使用する必...

ウェブレッスンプラン、初心者向けレッスンプラン

指導トピックウェブページ適用グレード高校2年生授業時間1 クラス教科書分析焦点: 静的および動的ウェ...

JDカルーセル効果を実現するための純粋なHTMLとCSS

JD カルーセルは、動的な効果を追加せず、主に位置決めの知識を使用して、純粋な HTML と CS...

react-beautiful-dnd を使用してリスト間のドラッグ アンド ドロップを実装する

目次react-beautiful-dndを選ぶ理由基本的な使い方基本概念使い方使用中に発生した問題...

DockerでGPUを使用するプロセスの詳細な説明

目次tf-gpu をダウンロード取得したtf-gpuイメージに基づいて独自のイメージを構築するイメー...

Web ページでフラッシュの wmode 属性を使用する方法をご存知ですか?

Web 開発を行う際に、フラッシュがページ内の要素をブロックする状況に遭遇することがあります。フラ...

JPQLに基づく純粋なSQL文方式の詳細な説明

JPQL は Java Persistence Query Language の略です。 Java ...

Vue+Element UIはドロップダウンメニューのカプセル化を実現します

この記事の例では、ドロップダウンメニューのカプセル化を実装するためのVue + Element UI...

MySQL クエリにおける LIMIT の大きなオフセットによって引き起こされるパフォーマンス低下の分析

序文MySQLクエリはselectコマンドを使用し、limitとoffsetパラメータを使用して、指...

Alibaba Cloud Centos7.X で外部にポートを開く方法

一言で言えば、大手メーカーからクラウド サーバーを購入する場合は、セキュリティ グループに移動して、...