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

推薦する

データベースクエリの最適化: サブクエリの最適化

1. 事例会社のトップ以外の従業員全員を年齢別にグループ化します。 t_emp で id が存在しな...

シンプルなカルーセル チャートを実装するための JavaScript の最も完全なコード分析 (ES5)

この記事では、シンプルなカルーセル効果を実現するためのJavaScriptの具体的なコードを参考まで...

メッセージボードにメッセージを追加および削除するための JavaScript

この記事では、JavaScript メッセージ ボードでメッセージを追加および削除する小さな例を詳細...

配列をフラット化する 5 つの JavaScript の方法

目次1. 配列の平坦化の概念2. 実装1. 減らす2. toString と split 3. 結合...

MySQLデータベースエンジンをInnoDBに変更する

PS: ここではPHPStudy2016を使用しています1. 変更中にMySQLを停止する2. my...

ハッシュテーブルのJavaScript実装の詳細な説明

目次1. ハッシュテーブルの原理2. ハッシュテーブルの概念3. ハッシュ競合問題1. チェーンアド...

セマンティックHTML構造を理解する方法

HTML と CSS は誰もが知っていると思います。HTML の構造と CSS の表現の分離も知って...

Linux での vi (vim) の新しい使い方のまとめ

私は数年間 vi エディタを使ってきましたが、実用的な用途で使ったことはありませんでした。今日 Py...

MySqlサブクエリINの実装と最適化

目次IN が遅いのはなぜですか? INとEXISTSのどちらが速いでしょうか?効率を向上させるにはど...

Dockerでイメージを削除する方法

dockerでイメージを削除するコマンドはdocker rmiですが、このコマンドを実行してもイメー...

IDEAでVUEプロジェクトをデバッグするための詳細な手順

js コードをデバッグするには、コード内にデバッガーを記述するか、Chrome で毎回ブレークポイン...

Linux リモート管理と sshd サービス検証の知識ポイントの詳細な説明

1. SSHリモート管理SSH の定義SSH (Secure Shell) は、主にキャラクタ イン...

ZFS とは何か? ZFS を使用する理由とその機能

ZFSの歴史Z ファイル システム (ZFS) は、2001 年に Matthew Ahrens と...

Centos7にGitLabサーバーをインストールして展開する方法

私はここでCentOS 7 64ビットシステムを使用しています。CentOS 64ビットシステムを試...

Eclipse は Tomcat を構成しますが、Tomcat には無効なポート解決策があります

目次1. EclipseがTomcatを構成する2. Tomcat の無効なポートの解決方法方法1:...