原因 最近、プロジェクトのリファクタリングを始めたのですが、マスタースレーブと読み取り書き込み分離を使用する必要があるかもしれません。そこで、ローカルでビルドして効果を試したいと思いました。その結果、Baiduで検索すると多くの結果が見つかりましたが、自分で試したものはほとんどありませんでした。ほとんどは他の人のコンテンツをコピーしたものです。重要なのは、実際のアプリケーションではエラーが発生することです。ブラウザで20近くのタブを開き、いくつか試してみましたが、すべて問題がありました。まったく使用できませんでした。時間の無駄になるだけでなく、イライラしたので、自分でやりました。 1. 準備 1. まずシステム内のmysql関連ファイルをチェックしてクリーンアップします # システムにMysqlファイルが存在するか確認する find / -name mysql # mysql に存在するファイルまたはフォルダを削除します rm -rf /usr/lib64/mysql/ # mysql関連の依存関係があるかどうかを確認します rpm -qa|grep mysql # mysql 依存関係をアンインストールします rpm -e mysql-..... 2. 対応するバージョンのMySQLインストールファイルをダウンロードします。 CentOS 7 64 ビットを使用しているため、MySQL 公式サイトで以下のようにオペレーティング システムを選択し、tar パッケージを選択してダウンロードします。 ここで、通常のインストールと rpm を使用したインストールという一般的なオンライン方法ではなく、tarball を使用してインストールする理由を説明します。最初のものを yum を使用して通常どおりインストールし、2 つ目をローカルにインストールすると、インストール パスを指定できず、2 つの mysql をまとめて体系的に管理することができないからです。そのため、ここでは tarball を使用して複数のインスタンスをインストールし、それらを同じディレクトリに配置して、管理と構成を容易にしています。 # ダウンロードする前に MySQL ユーザーを作成します。なぜ MySQL ユーザーを作成するのでしょうか? 解凍されたmysqlファイルにはグループがないため、設定や起動中にMySQLが特定のファイルを読み取れなくなるのを避けるために、mysqlユーザーを使用してmysqlを実行することをお勧めします。 ユーザを追加 mysql # パスワードを設定する passwd mysql # 次にパスワードを2回入力します # ユーザーを切り替える su mysql # MySQL tarball をダウンロードします wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.20-el7-x86_64.tar.gz # ファイルを解凍し、フォルダの名前をmysql_01に変更します tar xf mysql-8.0.20-el7-x86_64.tar.gz ./mysql_01 # mysql_01 をコピーして、mysql_02 に名前を変更します cp -r ./mysql_01 ./mysql_02/ # ルートユーザーに切り替え、2つのmysql配列をmysqlユーザーに変更し、mysqlユーザーに戻ります。 chown -R mysql:mysql /home/mysql/mysql_01/ /home/mysql/mysql_02/ su mysql 2. 設定を変更する 次のステップは、MySQL を構成することです。2 つの MySQL の構成は、パスが異なることを除いて、実際には似ています。ここでは、mysql_01 の構成のみを示します。mysql_02 の場合は、対応するパスを独自のパスに置き換えるだけです。 1. my.cnfをカスタマイズする # mysql_01 パスに切り替えます cd ./mysql_01 # 設定ファイル my.cnf を作成し、vim を使用して直接編集し、保存します。このうち、### は必須項目、# はオプション項目を示します。vim my.cnf ----------以下はファイルの内容です------------- [mysqld] ### ポート番号 port=10085 ### インストールディレクトリ basedir=/home/mysql/mysql_01/ ### データ保存パス datadir=/home/mysql/mysql_01/data/ ###セッションファイルディレクトリ socket=/home/mysql/mysql_01/mysql.sock # 許容される接続失敗の最大数 max_connect_errors=10 # サーバーの文字セットエンコーディング character-set-server=utf8 #デフォルトのストレージエンジン default-storage-engine=INNODB #デフォルトユーザー user=mysql # スロークエリを有効にする slow_query_log=on # スロークエリログファイルディレクトリ slow_query_log_file=/home/mysql/mysql_01/slow-query.log [クライアント] ### サーバーへの接続に使用されるポート番号は port=10085 です。 ### セッション ファイル socket=/home/mysql/mysql_01/mysql.sock #デフォルトの文字セットエンコーディング default-character-set=utf8 ---------------ファイル内容の終了-------------------- # 上記の設定では、datadir 項目にデータ フォルダがあることがわかりますが、mysql_01 にはデータ フォルダがありません。 したがって、データフォルダを作成する必要がありますmkdir data 2. デフォルト設定を変更する 次に、MySQLのデフォルト設定情報を変更する必要があります。 # ファイル vim ./support-files/mysql.server のデフォルト設定情報を変更します # ファイル内の basedir と datadir に関連するすべての設定を現在のパスに変更します 下記の通り そして、下の図に示すように、ファイルにロードされた MySQL 設定ファイルのパスを、先ほど作成した my.cnf ファイルに変更します。変更が完了したら、保存して終了します。 support-filesの下にある別のファイルも変更する必要があります。 # サポートファイルフォルダ内の mysqld_multi.server ファイルを変更します vim ./support-files/mysqld_multi.server #次の図に示すように、basedirとdatadirの2つのプロパティを変更します。 3. 初期インストールとサービスの開始 1. 初期インストール # mysql_01 のルートディレクトリに切り替えます cd /home/mysql/mysql_01/ # インストールを初期化します --defaults-file は初期化構成ファイルを指定します --console はコンソールに初期化情報を出力します。/bin/mysqld --defaults-file=/home/mysql/mysql_01/my.cnf --initialize --console --user=mysql # 初期化が成功すると、初期化パスワードがコンソールに表示されます。一般的な形式は次のとおりです。root@localhost: fa356fgss、 2. サービスを開始する # 現在の mysql_01 の mysql サービスをバックグラウンドで開始します。設定ファイルにソケット パラメータを設定しているため、設定ファイルを指定する必要があります。 この設定ファイルに従って起動された場合にのみ、ソケットによって設定されたパスに従って生成され、それ以外の場合は /tmp/mysql.sock に自動的に生成されます。 mysql_02 もこのように生成されると、オーバーレイが発生し、接続時に 1 つのサービスのみが接続されるか、エラーが発生します。 ./bin/mysqld_safe --defaults-file=./my.cnf & # 次のコマンドを使用して、mysql サービスが開始されているかどうかを確認します。netstat -nultp|grep 10085 4. データベースに接続してパスワードを変更する # 上記から、MySQL サービスが開始されたので、MySQL に接続できることがわかります。/bin/mysql --socket=./mysql.sock -uroot -p # 初期パスワードを入力します # MySQL ログイン パスワードを変更します。ここでは、root に変更します。末尾のセミコロンに注意してください。 alter user root@localhost identified by "root"; 同じ設定後、mysql_02を起動すると、効果は次のようになります。 上記はMySQL_01の設定です。MySQL_02でも同様です。該当するディレクトリを自分のファイルパスに変更するだけです。複数のインスタンスをインストールした後、マスターとスレーブのレプリケーションや読み取りと書き込みの分離などの関連する構成を実行できます。 要約する CentOS 7 で MySQL 8 のインスタンスを複数設定する方法についてはこれで終わりです (必要な数だけ設定できます)。 CentOS 7 で MySQL 8 のインスタンスを複数設定する方法の詳細については、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。 今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
>>: Alibaba CloudがCloud Shieldから無料のSSL証明書(https)を申請
Visual Studio Code の最新の Insider バージョンには、コードのリモート デ...
目次小さいけれど美しいシンプルにNULL値を避けるデータタイプを選択する手順データ型の紹介1. 文字...
.y { background: url(//img.jbzj.com/images/o_y.pn...
ウェブページを画像としてキャプチャする新機能があったので、人気のhtml2canvasを使ってみまし...
1. docker ps -a 実行中のイメージプロセスを表示する [root@mylinux~]#...
1. 現在のスクリプトの実際のパスを取得します。 #!/bin/bash if [[ $0 =~ ^...
WordPress のマルチサイト機能を使用すると、1 つの WordPress プログラムをインス...
序文MySQLクエリはselectコマンドを使用し、limitとoffsetパラメータを使用して、指...
簡単に言うと、distinct は重複を削除するために使用され、group by は統計を集計するよ...
目次1. データをバックアップするためのmysqldumpコマンド2. 一般的なmysqldump操...
Vue での img の動的スプライシングを見てみましょう。src 画像アドレス、具体的な内容は次の...
最近、リンク データについていくつか調査していて、rdf データベースを使用する必要があったため、v...
1. インストールターミネーターの最大の特徴は、1つのウィンドウで複数のターミナルを開くことができる...
現在のスクロール オフセットを html 要素の属性に追加することで、現在のスクロール位置に基づいて...
1. モバイル端末がリストスライドを処理するとき、WeChat には下部にページに戻るボタンが組み...