CentOS 7 で MySQL 8 の複数のインスタンスを設定する詳細なチュートリアル (必要な数だけ設定できます)

CentOS 7 で MySQL 8 の複数のインスタンスを設定する詳細なチュートリアル (必要な数だけ設定できます)

原因

最近、プロジェクトのリファクタリングを始めたのですが、マスタースレーブと読み取り書き込み分離を使用する必要があるかもしれません。そこで、ローカルでビルドして効果を試したいと思いました。その結果、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 をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Linux に MySQL の複数のインスタンスをインストールしてデータ バックアップ サーバーとし、マルチ マスターから 1 つのスレーブへのマルチ インスタンス バックアップを実現する
  • MySQL マルチインスタンス構成ソリューション
  • mysqld_multi を使用して単一のマシンに複数のインスタンスをデプロイする方法に関する MySQL チュートリアル
  • CentOS 6.5 に MySQL 5.7.17 バイナリ インストールとマルチインスタンス構成を展開する
  • MySQLの導入と1台のマシンでのマルチインスタンス導入を迅速に実装
  • MySQLマルチインスタンスインストールに基づく詳細な分析
  • Linux での MySQL マルチインスタンスの展開とインストール ガイド

<<:  vue3ソースコード解析の簡単な実装方法

>>:  Alibaba CloudがCloud Shieldから無料のSSL証明書(https)を申請

推薦する

Linux ファイルシステムの説明: ext4 以降

今日は、ext3 や他の以前のファイル システムとの違いを含め、ext4 の歴史について説明します。...

IE6 での PNG アルファ透明度 (完全コレクション)

IE6 は PNG の透明度をサポートしていないと多くの人が言っています。実際、IE は 100%...

nginxリバースプロキシを使用するときに長時間接続を維持する方法

・【シーン説明】 HTTP1.1 以降、HTTP プロトコルは永続的な接続 (長い接続とも呼ばれます...

MySQL の不正な文字列値の解決方法

MySQL を使用して中国語の文字を挿入すると、多くの友人から次のエラーが報告されます。 これは、文...

JS の compose 関数と pipe 関数の使い方の詳細な説明

目次作成機能配列プロトタイプの削減Array.prototype.reduceRightパイプ関数作...

Linux CentOS6.5 yum インストール mysql5.6

この記事では、Linux yumを使用してmysql5.6をインストールする簡単な手順を参考までに紹...

古典的なJavaScriptの再帰ケースの質問の詳細な分析

目次再帰とは何ですか?また、どのように機能しますか? 1. 合計(1)デジタル加算(2)配列の和2....

MySQLの起動と接続方法の例分析

目次mysqldの起動方法方法 1: mysqld方法 2: mysqld_safe方法3: mys...

Vueタイマーの実装方法

この記事では、参考までにタイマーを実装するためのVueの具体的なコードを紹介します。具体的な内容は次...

Ubuntu 18.04 に mysql5.7.23 をインストールするチュートリアル

この記事では、Ubuntu18.04にmysql5.7.23をインストールする具体的な方法を参考まで...

jQuery を使用してカルーセル効果を実装する

この記事では、jQueryでカルーセルチャートを実装するための具体的なコードを参考までに共有します。...

W3C チュートリアル (2): W3C プログラム

W3C 標準化プロセスは 7 つの異なるステップに分かれています。 W3C 標準化プロセスは 7 つ...

Three.js が Facebook Metaverse 3D ダイナミック ロゴ効果を実現

目次背景メタバースとは何ですか?成果を達成するトライアル 1: THREE.TorusGeometr...