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

推薦する

GZIP 圧縮 Tomcat と Web パフォーマンスの改善プロセス図

1. はじめに最近、あるプロジェクトに取り組んでいたのですが、サーバーからクライアントに返される J...

Flexboxレイアウトの最もシンプルなフォーム実装

フレキシブル レイアウト (Flexbox) はますます人気が高まっており、CSS レイアウトの記述...

Linux でも利用できる人気の Windows アプリ 10 選

データ分析会社Net Market Shareによると、Linuxデスクトップオペレーティングシステ...

JavaScript における call、apply、bind の実装原則の詳細な説明

目次序文電話使用法成し遂げるシンプルな実装バージョン:アップグレード版:適用する使用法成し遂げるバイ...

Dockerコンテナのホスト間通信におけるダイレクトルーティングの詳細な説明

概要Docker 自体の現在のデフォルト ネットワークについては、単一ホスト上の異なる Docker...

JavaScript コンストラクタとプロトタイプの関係

目次1. コンストラクタとプロトタイプ1. コンストラクター2. コンストラクタ問題3. コンストラ...

フロントエンドが習得すべき、複数列の等高レイアウトを実現するための CSS テクニック

1. はじめにページを作成しているときに、複数列のレイアウトに遭遇することがあります。各列の内容が異...

NodeJSのモジュール性に関する詳細な説明

目次1. はじめに2. 本文2.1 モジュールとは何ですか? 2.2 解決2.3、require.r...

JavaScriptイベント実行メカニズムの深い理解

目次序文ブラウザJS非同期実行の原理ブラウザのイベントループ実行スタックとタスクキューマクロタスクと...

MySQL ロック制御同時実行方法

目次序文1. 楽観的ロックバージョンフィールドを追加する2. 悲観的ロック読み取りロック完全なテーブ...

WindowsにMySQL5.7圧縮パッケージを素早くインストールする

この記事では、Windows に MySQL 5.7 圧縮パッケージをインストールする方法について説...

フォームアクションとonSubmitの例

まず、action はフォームの属性です。HTML5 では必須の属性値として定義されています。onS...

MySQLはbinlogを通じてデータを復元する

目次MySQL ログファイルバイナリログBinlogログがオンになっていますログ記録を有効にする方法...

CentOS 8.0.1905 は ZABBIX 4.4 バージョンをインストールします (検証済み)

Zabbix サーバー環境プラットフォームバージョン: ZABBIX バージョン 4.4システム:...

LinuxシステムでのSystemC環境設定方法

以下はcentos7での設定方法ですsystemc ソース パッケージをダウンロード: System...