1. MySQLイメージを取得するターミナルから最新のMySQLイメージを取得する
2. MySQLデータベースコンテナ設定ファイルに対応するディレクトリを作成するMySQL コンテナ設定ファイルを保存するために、現在のユーザーの下にディレクトリのセットを作成します (この手順は Linux では省略できます)。次の図を参照してください。 注意: MySQL バージョン 8 以降では、マッピング ファイルに mysql-files を追加する必要があります。そうしないと、MySQL データベース コンテナーの作成に失敗します。 MacOS は、my.cnf ファイルを直接変更するための vi/vim をサポートしておらず、また vim をインストールするための apt-get もサポートしていないため、ローカルに 2 つの新しい my.cnf マッピング ファイルを作成する必要があります。 (Linuxでは、vimを使用して設定ファイルを直接変更できます) マスター データベースに対応する my.cnf 構成ファイルは次のとおりです。 [mysqld] サーバーID = 1 ログ bin = mysql bin 読み取り専用=0 複製無視DB=mysql 複製無視db=sys 複製無視DB=情報スキーマ レプリケート-無視-db=パフォーマンススキーマ スレーブ ライブラリに対応する my.cnf 構成ファイルは次のとおりです。 [mysqld] サーバーID = 2 ログ bin = mysql bin 読み取り専用=1 複製無視DB=mysql 複製無視db=sys 複製無視DB=情報スキーマ レプリケート-無視-db=パフォーマンススキーマ 3. 2つのMySQLデータベースコンテナを作成するマスターデータベースコンテナを作成する
スレーブデータベースコンテナを作成する
次の図に示すように、2 つの MySQL コンテナが正常に作成されました。 この時点で Docker ダッシュボードを開くと、2 つのコンテナがすでに実行されていることがわかります。そしてポートは先ほど作成した対応するポートです Navicat 経由で接続すると、接続されたユーザー アカウントにリモート接続する権限がないため、エラー 1130 が発生します。 MySQLデータベースのユーザーテーブルのホスト項目を変更する必要があります localhostを%に変更 具体的な手順: mysql> mysqlを使用する テーブル名と列名の補完のためのテーブル情報の読み取り -Aでこの機能をオフにすると起動が速くなります。 データベースが変更されました mysql> user='root' のユーザーからホストを選択します。 +-----------+ | ホスト | +-----------+ | ローカルホスト | +-----------+ セット内の1行(0.01秒) mysql> ユーザーを更新し、host='%' を設定します。user = 'root'; クエリは正常、1 行が影響を受けました (0.01 秒) 一致した行: 1 変更された行: 1 警告: 0 mysql> user='root' のユーザーからホストを選択します。 +------+ | ホスト | +------+ | % | +------+ セット内の 1 行 (0.00 秒) mysql> 権限をフラッシュします。 クエリは正常、影響を受けた行は 0 行 (0.01 秒) 4. マスタースレーブデータベース構成マスターデータベース構成: //マスターデータコンテナに入る docker exec -it mysql-master mysql -uroot -p123456 // データを同期するためのユーザーを作成します。各スレーブは、標準の MySQL ユーザー名とパスワードを使用してマスターに接続します。レプリケーション操作を実行するユーザーには、REPLICATION SLAVE 権限が付与されます。 mysql8より前のバージョンの暗号化ルールはmysql_native_passwordで、mysql8以降の暗号化ルールはcaching_sha2_passwordです。 CREATE USER 'slave'@'%' IDENTIFIED BY '123456'; (スレーブがマスターとの接続を作成するときにエラーが発生する可能性があります) または CREATE USER 'slave'@'%' IDENTIFIED WITH mysql_native_password BY '123456'; // ユーザーを承認する GRANT REPLICATION SLAVE ON *.* to 'slave'@'%'; // ステータスを確認し、File と Position の値を記憶します。Show master ステータスは Slave で使用されます。 // スレーブがマスター ライブラリ接続を設定するときに使用されるマスター コンテナーの IP を照会します。docker examine mysql-master | grep IPA; マスターのステータス、ファイル mysql-bin.000003 位置 661 スレーブ スレーブ データベース構成: //スレーブデータコンテナに入る docker exec -it mysql-slave mysql -uroot -p123456 //マスターライブラリリンク変更マスターを マスターをmaster_host='172.17.0.2'、master_user='slave'、master_password='123456'、master_log_file='mysql-bin.000003'、master_log_pos=661、master_port=3306に変更します。 //スレーブ同期を開始します。start slave; //ステータスを確認します show slave status\G; // show slave status\G コマンドの結果が次のように表示された場合: //スレーブIO実行中: はい //スレーブSQL実行中: はい //上記 2 つの項目が両方とも Yes の場合、問題はありません。 //それ以外の場合は、スレーブ データを再構成します。stop slave; すべてのスレーブをリセットします。 スレーブ同期を正常に開始しました 5. マスタースレーブ検証マスター上にデータベースを作成し、テーブルを作成し、データを挿入すると、対応するスレーブも増加します。 データベースmaster_slave_demoを作成します。 master_slave_demo を使用します。 テーブルuserinfo(username varchar(50),age int)を作成します。 ユーザー情報に値('Toulon',25)を挿入します。 ユーザー情報から*を選択します。 コマンドを実行する前は、マスター データベースとスレーブ データベースの数は同じです。 マスターがコマンドを実行した後、スレーブは対応するデータを追加します メインデータベースに新しく追加されたデータが同期され、MySQL のマスタースレーブレプリケーションが設定されていることがわかります。 (テスト環境、MacOS M1 ARM64 マシン、Docker、MySQL 8.0.27) これで、MacOS 上で Docker を使用して MySQL マスター スレーブ データベースを作成する方法についての記事は終了です。Docker を使用して MySQL マスター スレーブ データベースを作成する方法の詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: ブラウザの互換モードでボタン内のテキストが垂直方向に中央揃えにならない問題について簡単に説明します。
目次1. オプションの連鎖2. NULL値の結合3. 再帰型エイリアス4. アサーション署名5. P...
今日 テーブル名から * を選択します。ここで、to_days(時間フィールド名) = to_day...
BEM は、Web 開発に対するコンポーネントベースのアプローチです。ユーザー インターフェイスを独...
必要なコメントを追加することは、責任感と道徳心のあるフロントエンド開発者が持つべき良い習慣であり、コ...
ウェブページでEnterキーを押すと、フォームは自動的に送信され、他のページに移動します。クエリフォ...
序文プロジェクトのニーズに応じて、Vue-touch を使用して、vue モバイル端末の左スワイプ編...
IE6 での CSS 背景画像のちらつきバグ (IE6 の背景画像キャッシュの問題) IE6 は、背...
目次1. 数値型1.1 数値型の分類1.1.1 浮動小数点数1.1.2 ビットタイプ1.1.3 時間...
オープンソース ソフトウェアである Apache は、最も広く使用されている Web アプリケーショ...
1つ。 wget https://dev.mysql.com/get/mysql57-communi...
Dockerfileの作成expressによって自動的に作成されたディレクトリを例にとると、ディレク...
目次1.0 はじめに2.0 Dockerのインストール3.0基本的なDockerコマンド4.0 Do...
落とし穴1. ネット上の多くのチュートリアルでは環境変数を設定するファイル名はmy.iniと書いてあ...
テーブルを美しくするために、テーブルにさまざまな境界線の色を設定できます。基本的な構文<テーブ...
ラベル表示モード(重要) divタグとspanタグ1. スタイルはまったく同じですが、ラベルが異なり...