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を構築する方法

推薦する

MySQLの分離レベルとロックメカニズムの詳細な説明

目次簡単な説明: 1. 取引の4つの特徴2. 複数の同時トランザクションによって発生する問題3. ト...

よくある HTML タグの記述エラー

HTML Police がコードを調べて意味のないタグをすべて見つけ出すので、注意を払う必要がありま...

HTML テキストエスケープのヒント

今日、CSDN で HTML テキスト エスケープのちょっとしたトリックを見ましたが、とても簡単です...

React 非親子コンポーネントパラメータ渡しのサンプルコード

React は、ユーザー インターフェイスを構築するための JavaScript ライブラリです。 ...

HTML5+CSS3コーディング標準

黄金律プロジェクトに何人の人が取り組んでいるかに関係なく、すべてのコード行が同じ人によって書かれたよ...

Vueキャッシュ機能の使い方

目次vue2のキャッシュ機能Vue キャッシュ関数の変換最適化要約するvue2のキャッシュ機能vue...

この記事ではCSSの組み合わせセレクターの使い方を説明します

CSS 組み合わせセレクターには、単純なセレクターのさまざまな組み合わせが含まれます。 CSS3 に...

動的なデジタル時計を実装するJavaScript

この記事では、JavaScriptで動的なデジタル時計を実装するための具体的なコードを参考までに紹介...

Ubuntuでネットワークルーティングテーブルを表示する方法

Linux におけるルーティングとルーティング テーブルとは何ですか?ルーティングのプロセスとは、ネ...

HTML マークアップ言語 - テーブルタグ

123WORDPRESS.COM HTML チュートリアル セクションに戻るには、ここをクリックして...

Vueは複数のカウントダウンを同時に設定する機能を実装しています

この記事の例では、複数のカウントダウンを同時に設定するためのVueの具体的なコードを参考までに共有し...

Linux システムの busybox に mkfs.vfat コマンドを移植する

オーディオおよびビデオ ファイルを保存するためのディスク寿命を延ばすには、ディスクをフォーマットする...

Django2.* + Mysql5.7 開発環境統合チュートリアル図

環境: 10.12 の新機能Python 3.6 MySQL 5.7.25 の場合ジャンゴ 2.2....

事例を通してLinux NFSの仕組みを詳細に分析

前回の記事に引き続き、web02 サーバーを作成し、web01 サーバーと web02 サーバーの ...

CentOS7.4 起動時の緊急モードへようこそメッセージに対する解決策

今日は仮想マシンを使って実験をしました。システムをインストールし、いくつかのオプションを最適化した後...