この記事では、例を使用して、MySQL データベースの複数のインスタンスを構成する方法について説明します。ご参考までに、詳細は以下の通りです。 関連する基本的なコマンド操作は上記で紹介されています: MySQL データベースの基礎: 基本コマンド入門 すべての操作は単一のインスタンスに基づいています。MySQL の複数のインスタンスは、習得する必要があるため、実際の運用環境では非常に実用的です。 1. マルチインスタンスとは複数のインスタンスとは、サーバー上で複数の異なるサービス ポート (デフォルトは 3306) を開き、複数の MySQL サービス プロセスを実行することを意味します。これらのサービス プロセスは、異なるソケットを介して異なるサービス ポートをリッスンすることで、独自のサービスを提供します。すべてのインスタンスは MYSQL インストール プログラムのセットを共有しますが、それぞれが異なる構成ファイル、起動プログラム、およびデータ ファイルを使用し、論理的には比較的独立しています。 複数インスタンスの主な機能は、既存のサーバー ハードウェア リソースを最大限に活用して、さまざまなサービスにデータ サービスを提供することです。ただし、インスタンスの同時実行性が比較的高い場合、他のインスタンスのパフォーマンスにも影響します。 2. 複数インスタンスのインストールの準備インストール前にMySQLをインストールする必要がありますが、make install(コンパイルとインストール)に進むだけで済みます。無料のインストールプログラムを使用する場合は、ソフトウェアパッケージを解凍するだけで済みます。今日の環境では、無料のインストールパッケージを介してMySQLメインプログラムをインストールします(他のインストールでは、以前のインストールプロセスを参照してセルフテストを行うことができます)。 システム環境 [root@centos6 ~]# cat /etc/redhat-release CentOS リリース 6.5 (最終) [root@centos6 ~]# uname -r 2.6.32-431.el6.x86_64 インストーラ mysql-5.5.52-linux2.6-x86_64.tar.gz まずソフトウェアをローカルコンピュータにダウンロードします http://mirrors.sohu.com/mysql/MySQL-5.5/mysql-5.5.52-linux2.6-x86_64.tar.gz を取得します。 インストールユーザーを作成する [root@centos6 ~]#グループ追加mysql [root@centos6 ~]#useradd mysql -s /sbin/nologin -g mysql -M [root@centos6 ~]#tail -1 /etc/passwd mysql:x:500:500::/home/mysql:/sbin/nologin 複数のインスタンスのデータディレクトリを作成する [root@centos6 ツール]# mkdir -p /data/{3306,3307} [root@centos6 tools]# ツリー /data/ /データ/ +-- 3306 +-- 3307 2 ディレクトリ、0 ファイル 3. MYSQLの複数のインスタンスをインストールする次に、MySQL の複数のインスタンスをインストールします。 解凍ソフトウェア [root@centos6 ツール]# ll mysql-5.5.52-linux2.6-x86_64.tar.gz -rw-r--r--。1 ルート ルート 185855000 8月26日 21:38 mysql-5.5.52-linux2.6-x86_64.tar.gz [root@centos6 ツール]# tar zxf mysql-5.5.52-linux2.6-x86_64.tar.gz 設定ファイルをコピーする [root@centos6 mysql-5.5.52-linux2.6-x86_64]# cp サポートファイル/my-small.cnf /data/3306/my.cnf [root@centos6 mysql-5.5.52-linux2.6-x86_64]# cp サポートファイル/mysql.server /data/3306/mysql [root@centos6 mysql-5.5.52-linux2.6-x86_64]# cp サポートファイル/my-small.cnf /data/3307/my.cnf [root@centos6 mysql-5.5.52-linux2.6-x86_64]# cp サポートファイル/mysql.server /data/3307/mysql 標準インストールパスの場合は、無料インストールパッケージをアプリケーションディレクトリにコピーします。 [root@centos6 ツール]# mv mysql-5.5.52-linux2.6-x86_64 /application/mysql [root@centos6 ツール]# ll /application/mysql 合計 72 drwxr-xr-x. 2 ルート ルート 4096 12月9日 17:15 bin -rw-r--r--. 1 7161 31415 17987 8月26日 19:24 コピー中 drwxr-xr-x. 3 ルート ルート 4096 12月9日 17:15 データ drwxr-xr-x. 2 ルート ルート 4096 12月 9日 17:15 ドキュメント drwxr-xr-x. 3 ルート ルート 4096 12月 9日 17:15 含む -rw-r--r--. 1 7161 31415 301 8月26日 19:24 INSTALL-BINARY drwxr-xr-x. 3 ルート ルート 4096 12月9日 17:15 lib drwxr-xr-x. 4 ルート ルート 4096 12月9日 17:15 男 drwxr-xr-x. 10 ルート ルート 4096 12月9日 17:15 mysql-test -rw-r--r--. 1 7161 31415 2496 8月26日 19:24 README drwxr-xr-x. 2 ルート ルート 4096 12月 9日 17:15 スクリプト drwxr-xr-x. 27 ルート ルート 4096 12月 9 17:15 シェア drwxr-xr-x. 4 ルート ルート 4096 12月9日 17:15 sql-bench drwxr-xr-x. 2 ルート ルート 4096 12月 9日 17:15 サポートファイル 設定ファイルと起動ファイルを変更する マルチインスタンスなのでパラメータを変更する必要があります。変更した設定ファイルは以下のとおりです。設定ファイル my.cnf [クライアント] ポート = 3307 ソケット = /data/3307/mysql.sock [mysql] 自動再ハッシュなし [mysqld] ユーザー = mysql ポート = 3307 ソケット = /data/3307/mysql.sock ベースディレクトリ = /application/mysql データディレクトリ = /data/3307/data #ログ長形式 #ログエラー = /data/3307/error.log # ログスロークエリ = /data/3307/slow.log pid ファイル = /data/3307/mysql.pid サーバーID = 3 [mysqld_safe] ログエラー=/data/3307/mysql3307.err pidファイル=/data/3307/mysqld.pid プログラムファイルmysqlを起動します [root@backup 3307]# cat mysql #!/bin/sh 初期化ポート=3307 mysql_user="root" mysql_pwd="ミゴンゲ" CmdPath="/application/mysql/bin" mysql_sock="/data/${port}/mysql.sock" #起動する 関数start_mysql() { if [ ! -e "$mysql_sock" ];その後 printf "MySQL を起動しています...\n" /bin/sh ${CmdPath}/mysqld_safe --defaults-file=/data/${port}/my.cnf 2>&1 > /dev/null & それ以外 printf "MySQL が実行中です...\n" 出口 フィ } #stop関数 関数stop_mysql() { if [ ! -e "$mysql_sock" ];その後 printf "MySQL は停止しています...\n" 出口 それ以外 printf "MySQL を停止しています...\n" ${CmdPath}/mysqladmin -u ${mysql_user} -p${mysql_pwd} -S /data/${port}/mysql.sock シャットダウン フィ } #再起動機能 関数_restart_mysql() { printf "MySQL を再起動しています...\n" 関数_stop_mysql 睡眠2 関数_start_mysql } ケース$1 始める) 関数_start_mysql ;; 停止) 関数_stop_mysql ;; 再起動) 関数_restart_mysql ;; *) printf "使用方法: /data/${port}/mysql {start|stop|restart}\n" エサック その他の設定については、設定ファイルを参照して変更してください。 複数インスタンスの初期化操作 [root@centos6 3306]# /application/mysql/scripts/mysql_install_db --basedir=/application/mysql --datadir=/data/3306/data --user=mysql MySQL システム テーブルをインストールしています... 161209 18:02:17 [警告] 'THREAD_CONCURRENCY' は非推奨であり、将来のリリースで削除される予定です。 161209 18:02:17 [注記] /application/mysql/bin/mysqld (mysqld 5.5.52-log) がプロセス 3336 として開始されました... わかりました ヘルプ テーブルに入力しています... 161209 18:02:17 [警告] 'THREAD_CONCURRENCY' は非推奨であり、将来のリリースで削除される予定です。 161209 18:02:17 [注記] /application/mysql/bin/mysqld (mysqld 5.5.52-log) がプロセス 3343 として開始されました... わかりました 起動時にmysqldを起動するには、 support-files/mysql.server をシステムに適した場所にコピーします MySQL ルート ユーザーのパスワードを設定することを忘れないでください。 これを行うには、サーバーを起動し、次のコマンドを発行します。 /application/mysql/bin/mysqladmin -u root パスワード '新しいパスワード' /application/mysql/bin/mysqladmin -u root -h centos6 パスワード '新しいパスワード' あるいは、以下を実行することもできます: /application/mysql/bin/mysql_secure_installation これにより、テストを削除するオプションも提供されます デフォルトで作成されるデータベースと匿名ユーザー。これは 実稼働サーバーに強くお勧めします。 詳しい手順についてはマニュアルを参照してください。 MySQL デーモンは次のように起動できます。 cd /application/mysql; /application/mysql/bin/mysqld_safe & mysql-test-run.plでMySQLデーモンをテストできます。 cd /application/mysql/mysql-test; perl mysql-test-run.pl 問題がありましたら、http://bugs.mysql.com/ までご報告ください。 初期化が成功すると、データディレクトリデータといくつかのファイルがデータディレクトリに生成されます。 [root@centos6 3306]# ll /data/3306/data/ 合計 1136 drwx------. 2 mysql ルート 4096 12月 9日 18:02 mysql -rw-rw----。1 mysql mysql 27693 12月9日 18:02 mysql-bin.000001 -rw-rw----。1 mysql mysql 1114546 12月9日 18:02 mysql-bin.000002 -rw-rw----。1 mysql mysql 38 12月 9 18:02 mysql-bin.index drwx------. 2 mysql mysql 4096 12月9日 18:02 performance_schema drwx------. 2 mysql ルート 4096 12月9日 18:02 テスト 別のインスタンスを初期化する場合は、上記の操作を参照してください。操作手順は個別に紹介されません。 [root@centos6 3307]# ll /data/3307/data/ 合計 1136 drwx------. 2 mysql ルート 4096 12月 9日 18:40 mysql -rw-rw----. 1 mysql mysql 27693 12月9日 18:40 mysql-bin.000001 -rw-rw----. 1 mysql mysql 1114546 12月9日 18:40 mysql-bin.000002 -rw-rw----。1 mysql mysql 38 12月 9 18:40 mysql-bin.index drwx------. 2 mysql mysql 4096 12月9日 18:40 performance_schema drwx------. 2 mysql ルート 4096 12月9日 18:40 テスト 4. 複数のインスタンスを起動してログインするサービスを開始する [root@backup 3307]# /data/3306/mysql を起動します MySQL を起動しています... [ルート@バックアップ 3307]# lsof -i :3306 コマンド PID ユーザー FD タイプ デバイス サイズ/オフ ノード名 mysqld 19986 mysql 10u IPv4 90967 0t0 TCP *:mysql (LISTEN) [root@backup 3307]# /data/3307/mysql 開始 MySQL を起動しています... [ルート@バックアップ 3307]# lsof -i :3307 コマンド PID ユーザー FD タイプ デバイス サイズ/オフ ノード名 mysqld 21648 mysql 11u IPv4 92899 0t0 TCP *:opsession-prxy (LISTEN) ポートを確認する [root@backup 3307]# netstat -lntup|grep mysql tcp 0 0 0.0.0.0:3307 0.0.0.0:* LISTEN 21648/mysqld tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 19986/mysqld マルチインスタンスデータベースにログインする [root@backup ~]# mysql -S /data/3306/mysql.sock MySQL モニターへようこそ。コマンドは ; または \g で終わります。 MySQL接続IDは1です サーバーバージョン: 5.5.51-log ソース配布 Copyright (c) 2000, 2016, Oracle およびその関連会社。無断複写・転載を禁じます。Oracle は Oracle Corporation およびその関連会社の登録商標です。その他の名称は各所有者の商標である場合があります。 ヘルプを表示するには、「help;」または「\h」と入力します。現在の入力ステートメントをクリアするには、「\c」と入力します。 mysql> データベース data3306 を作成します。 クエリは正常、1 行が影響を受けました (0.00 秒) mysql> データベースを表示します。 +--------------------+ | データベース | +--------------------+ | 情報スキーマ | |データ3306| |mysql | | パフォーマンススキーマ | | テスト | +--------------------+ セット内の行数は 5 です (0.00 秒) mysql>終了 さよなら [root@backup ~]# mysql -S /data/3307/mysql.sock MySQL モニターへようこそ。 コマンドは ; または \g で終わります。 MySQL接続IDは1です サーバーバージョン: 5.5.51 ソース配布 Copyright (c) 2000, 2016, Oracle およびその関連会社。無断複写・転載を禁じます。Oracle は Oracle Corporation およびその関連会社の登録商標です。その他の名称は各所有者の商標である場合があります。 ヘルプを表示するには、「help;」または「\h」と入力します。現在の入力ステートメントをクリアするには、「\c」と入力します。 mysql> データベースを表示します。 +--------------------+ | データベース | +--------------------+ | 情報スキーマ | |mysql | | パフォーマンススキーマ | | テスト | +--------------------+ セットに4行(0.05秒) 3306インスタンスにログインしてデータベースを作成しましたが、3307インスタンスにはデータが作成されませんでした。これは、2つのインスタンスが独立していることを示しています。
MySQL 関連のコンテンツに興味のある読者は、このサイトの次のトピックをチェックしてください: 「MySQL クエリ スキル」、「MySQL 共通関数の概要」、「MySQL ログ操作スキル」、「MySQL トランザクション操作スキルの概要」、「MySQL ストアド プロシージャ スキル」、および「MySQL データベース ロック関連スキルの概要」 この記事が皆様のMySQLデータベース設計に役立つことを願っています。 以下もご興味があるかもしれません:
|
>>: 一般的な HBase 運用および保守ツール 10 個の概要
1. プロジェクトの実行時に報告されるエラー情報は次のとおりです。 ファイル "/home...
1. 問題の説明今日、システム ログ ファイルを確認する必要がありますが、/var/log/mess...
目次同じ名前の名前空間をマージする名前空間とその他の種類のマージ同じ名前の名前空間とクラスをマージす...
序文学習中に Zookeeper をインストールする必要があったため、仮想マシンに常に問題が発生した...
1. IEブラウザモードハックロゴ1. CSSハックロゴコードをコピーコードは次のとおりです。 ie...
1. 文法 場所 [=|~|~*|^~|@] /uri/ { ... } 2. 説明上記の構文から、...
JavaScriptゲームSnakeの実装アイデア(完全なコード実装)を参考までに説明します。具体...
Web ページを設計する過程で、デザイナーが間違いを犯すのは必然です。特に新人は、新しいアイデアを実...
目次序文undefined と null の混同紛らわしい数値の加算と文字列の連結戻り文の改行の問題...
ネットワークが分離されているため、MySQL は yum を使用してインストールできません。ここでは...
Tomcatの設定まずTomcatをインストールするTomcatのインストールは、Tomcatのイン...
最近の事例をお話ししましょう。オンライン Alibaba Cloud RDS 上のゲーム ログ ライ...
導入: Nginx (エンジン エックスと同じ発音) は、BSD のようなプロトコルに基づいてリリー...
目次トピック分析する基本的な解決策基本的な再帰再帰最適化要約するトピック私たちが答えなければならない...
まずmysqlの圧縮バージョンをダウンロードします。公式ダウンロードアドレスは123WORDPRES...