CentOS 7.0 (mysql-5.7.21) で複数の MySQL インスタンスを起動する方法

CentOS 7.0 (mysql-5.7.21) で複数の MySQL インスタンスを起動する方法

設定手順

Linux システム: CentOS-7.0

MySQL バージョン: 5.7.21

Linux で複数の MySQL インスタンスを起動する方法は現在 2 つ知られています。1 つは公式の mysqld_multi.server を使用することですが、その方法についてはまだ調べていません。もう 1 つは、複数の MySQL サーバーをインストールする独自の方法を使用することです。私は現在2番目の方法を使用しています。 2 つの MySQL インスタンスを正常に起動しました。次に操作手順を紹介します。アドバイスをお願いします。

1. 最初のMySQL(5.7.21)サーバーをインストールする

まず、バイナリパッケージを使用してmysqlをインストールしました: mysql-5.7.21-linux-glibc2.12-x86_64.tar.gz

1. MySQL バイナリ パッケージを取得し、tar コマンドを使用して解凍します。mv mv mysql-5.7.21-linux-glibc2.12-x86_64 mysql_3306コマンドを使用して、解凍したフォルダーの名前を短い名前に変更し、識別しやすいように使用するポート番号をメモします。解凍したファイルをどこに置くかは、あなた次第です。違いは、解凍したファイルに mysql という名前を付けず、/usr/local ディレクトリに直接置く場合と、ln 経由で /usr/local ディレクトリ内の mysql 参照を使用する場合は、my.cnf または起動コマンドのパラメータで指定する必要があることです (basedir = 実際の解凍ファイルのパス、datadir = 実際の完了ファイルのパス/データ)。この説明は実際には mysql.server にあります。vi コマンドを使用して開いて確認することができます。

2. インターネットで多くの MySQL インストール方法の紹介を読んだところ、すべて、groupadd mysql と useradd -r -g mysql -s /bin/false mysql を実行して、mysql ユーザーと mysql ユーザー グループを追加するという新しいユーザー グループとユーザーの追加について言及していました。これは実際のニーズによって異なります。私自身も使用しており、セキュリティ上の問題もないため、新しいものを追加せず、直接 root を使用しました。新しいユーザーとユーザー グループを追加する必要がある場合は、オンラインで情報を検索するか、公式の MySQL マニュアルで確認できます: https://dev.mysql.com/doc/refman/5.7/en/binary-installation.html

3. 新しい my.cnf を作成するか、別の場所からコピーします。 重要なのは、初期化ファイルで basedir、datadir、ポート番号、ソケットなどのパラメータを指定することです。 次の図は、my.cnf の内容です。 実際のパスに応じて関連するパラメータを置き換え、インストール ディレクトリに配置してください。

4. 公式ドキュメントのインストール手順によると、インストール ディレクトリに新しい mysql-files フォルダも作成する必要があります。なぜこのフォルダを作成する必要があるのか​​はわかりません。公式ドキュメントの内容は次のとおりです。「mysql-files ディレクトリは、secure_file_priv システム変数の値として使用するのに便利な場所を提供し、インポートおよびエクスポート操作を特定のディレクトリに制限します。」

5. 次に、mysql を初期化します。まず、インストール ディレクトリの下に新しいデータ フォルダを作成し、インストール ディレクトリの bin フォルダに移動して、次のコマンドを実行します: “./mysqld --initialize --user=root --basedir=/data/program/mysql3306 --datadir=/data/program/mysql3306/data” 。 Linux では、コマンドにパラメータがある場合、パラメータ名が完全な名前であれば 2 つのハイフン "--" を使用し、パラメータが省略形であれば 1 つのハイフン "-" を使用します (例: ./mysql --host=localhost および ./mysql -hlocalhost)。上記のmysqlを初期化するコマンドでは、パラメータ値を独自のパスとユーザーに置き換えてください。 mysql を 1 つだけインストールし、それがデフォルトのディレクトリ /usr/local/mysql にある場合は、basedir および datadir パラメータを指定する必要はありません。何らかの理由で再初期化する場合は、まずデータ ディレクトリの内容を削除する必要があります。データ フォルダ全体を削除してから、 rm -rf data, mkdir dataを追加し、上記の初期化コマンドを実行すると、正常に再初期化できます。ここで注目すべき点は、初期化が成功すると、プロンプト メッセージの最後にデフォルトのパスワードが表示されることです。後でクライアントにログインするときに必要になるため、必ず覚えておいてください。

6. 次に、安全な送信に必要な証明書とキーを作成します。bin ディレクトリでコマンド“./mysql_ssl_rsa_setup --datadir=/data/program/mysql3306/data”を実行します。同様に、パラメータを任意の値に置き換えます。デフォルトのインストール ディレクトリでは、datadir 値を指定する必要はありません。このコマンドの公式の説明は次のとおりです。「このプログラムは、SSL を使用した安全な接続と、暗号化されていない接続を介した RSA を使用した安全なパスワード交換をサポートするために必要な SSL 証明書とキー ファイル、および RSA キー ペア ファイルを作成します (これらのファイルが存在しない場合に)。」これは、このコマンドが、暗号化されていない接続を介した SSL と RSA を使用した安全な送信に必要な SSL 証明書とキー、および RSA キーと値のペアを作成することを意味していると考えられます。

7. この時点で、mysql の初期化が完了し、mysql サーバーを起動できます。バージョン 5.7 以降では、mysqld_safe コマンドを使用してサービスが起動されるようです。support-file ディレクトリの mysql.server を使用して起動することもできますが、mysql.server も mysqld_safe を使用して起動されます。 mysqld_safe のコマンドは次のとおりです: “./mysqld_safe --defaults-file=/data/program/mysql3306/my.cnf --user=root --port=3306 &” 。重要なのは、my.cnf パスを指定することです。これは、デフォルトのディレクトリにインストールしておらず、1 台のマシンに 2 つの mysql をインストールするためです。 「--defaults-file」は最初のパラメータである必要があることに注意してください。そうでない場合、対応するプロンプトとともにエラーが報告されます。もう 1 つは、コマンドの末尾の「&」です。これは、MySQL インスタンスをバックグラウンド プロセスとして使用するようにシステムに指示し、コマンドを終了しても MySQL サーバーが引き続き実行されるようにします。

mysql_safe コマンドの詳細なパラメータについては、https://www.jb51.net/article/52259.htm を参照してください。

8. サーバーを起動したら、クライアントを使用してサーバーにアクセスできます。bin ディレクトリでコマンド“./mysql -uroot -P3306 -p”を実行します。次に、パスワードの入力を求められます。手順 5 でデフォルトのパスワードを入力します。入力後、コマンドset password=password('new password')を使用して新しいパスワードを設定します。そうしないと、サーバーで他の操作を行うことができなくなります。

9. この時点で、mysql のインストールは完了です。

2. n番目のMySQL(5.7.21)サーバーをインストールする

上記のインストール プロセスでは、基本的に n 番目の MySQL のインストールは上記と同じです。インストール パッケージを解凍し、名前を mysql_port に変更し、ポート番号で異なる MySQL サーバーを区別してから、my.cnf 内のパス パラメーターと上記で実行したコマンドを対応するパスに置き換えます。特定のパスを指定することで、Linux マシンに複数の MySQL インスタンスをインストールして起動できます。クライアントがサーバーにアクセスするときは、大文字の P を含むパラメータ -P3306 を使用して、使用するポートを指定する必要があります。

これは、単純なインストール プロセスの記録と調査にすぎません。MySQL には、まだ注意が必要な設定や機能が多数ありますが、後ほど整理する機会があります。

要約する

上記はこの記事の全内容です。この記事の内容が皆さんの勉強や仕事に一定の参考学習価値を持つことを願っています。ご質問があれば、メッセージを残してコミュニケーションしてください。123WORDPRESS.COM を応援していただきありがとうございます。

以下もご興味があるかもしれません:
  • MySQL の起動オプションとシステム変数の例の詳細な説明
  • MySQLの起動と接続方法の例分析
  • MYSQL スロークエリとログの例の説明
  • MySQL で結果を選択して更新を実行する例のチュートリアル
  • あるテーブルからバッチデータをクエリし、それを別のテーブルに挿入する MySQL の完全な例
  • Springboot は MySQL 接続サンプルコードを設定します
  • MySQLで大きなテーブルを正常に削除する方法の詳細な説明
  • MySQL トリガーの使用シナリオとメソッドの例
  • MySQL でコミットされていないトランザクションを見つけるための SQL の例の簡単な分析
  • MySQLインスタンスが起動できない問題の分析と解決

<<:  Nginx http を https にアップグレードする手順を完了する

>>:  Centos6でgitlabを構築する方法

推薦する

antd pro に基づく SMS 認証コード ログイン機能 (プロセス分析)

目次まとめ全体的なプロセスフロントエンドページコード検証コードとログイン サービスをリクエストする ...

オブジェクト指向の観点から Vue コンポーネントを理解するための簡単な分析

同じ関数や HTML コードが複数回使用される場合は、それらをコンポーネントに抽出することを検討でき...

ナビゲーションデザインと情報アーキテクチャ

<br />ナビゲーションについて話すときは、ほとんどの場合、ナビゲーションがコンテンツ...

動的なセカンダリメニューを実現するためのCSS

シンプルなセカンダリメニューを動的に実装するマウスを第 1 レベルのラベル上に置くと、マウスが小さな...

MySQL ジョイントインデックス(複合インデックス)の実装

共同インデックスこの記事におけるジョイントインデックスの定義は次のとおりです (MySQL): AL...

jsはシンプルなショッピングカートモジュールを実装します

この記事の例では、参考までに、シンプルなショッピングカートモジュールを実装するためのjsの具体的なコ...

Dockerでnginxを実行し、ローカルディレクトリをイメージにマウントする方法

1 hupからイメージを取得する docker プル nginx 2 マウントするディレクトリを作成...

MySQL クエリ フィールド タイプが json の場合の 2 つのクエリ メソッド

テーブル構造は次のとおりです。 id varchar(32) 情報JSONデータ: id = 1 i...

CentOS 6.2 に MySQL 5.7.28 をインストールするチュートリアル (mysql ノート)

1. 環境整備1.MySQLインストールパス: /usr/local 2. CentOS 6.2 ...

Vue ページ内の公開マルチタイプ添付画像アップロード領域と適用可能な折りたたみパネル (サンプルコード)

フロントエンド プロジェクトでは、添付ファイルのアップロードは非常に一般的な機能であり、ほぼすべての...

ウェブページのカラーマッチング例分析: 緑色のカラーマッチングウェブページ分析

<br />緑は黄色と青(寒色と暖色)の中間の色で、より穏やかな色です。そのため、緑は最...

iframe が HTML 内のページにジャンプするのを防ぎ、iframe を使用して WeChat Web バージョンをページに埋め込む方法

私は、WinForm と HTML5 を組み合わせた小さなものを作りたいだけなのですが、突然、そこに...

Linux 7.6 バイナリに MySQL 8.0.27 をインストールする詳細な手順

目次1. 環境整備1.1 オペレーティング システムのバージョン1.2 ディスク容量1.3 ファイア...

Docker 可視化グラフィックツール portainer の詳細な説明

目次1. ポーテナーの紹介2. Portainer アーキテクチャの概要3. Portainerのイ...