MySQL 5.7マルチインスタンスインストール構成


1.背景説明
a.MySQLマルチインスタンス概念
簡単に言えば、1台のサーバの上で複数の異なるサービスポート(例えば、3306307)を開き、複数のMySQLサービスプロセスを実行し、これらのサービスは異なるsocketによって異なるサービスポートを傍受してそれぞれのサービスを提供する.
b.MySQLマルチインスタンスの役割と問題
  • サーバリソースを有効に利用して残りがある場合、残りのリソースを十分に利用してサービスを提供することができる.
  • サーバー資源を節約会社の資金が緊張している場合、サーバーはできるだけ独立してサービスを提供する必要があります.また、主従同期技術が必要な場合、マルチインスタンスが望ましい.
  • リソースの相互占有の問題あるサービスが同時に高い場合、または遅いクエリがある場合、インスタンス全体がより多くのメモリ、CPU、ディスクIOリソースを消費し、サーバ上の他のインスタンスがサービスを提供する品質が低下する.

  • c.MySQLマルチインスタンスアプリケーションシーン
  • 資金難の会社
  • 同時アクセスは特に大きなビジネスではありません
  • ポータルサイトアプリケーションMySQLマルチインスタンスシーン
  • 2.環境準備
    a.オペレーティングシステム:CentOS Linux release 7.6.1810 b.MySQL:mysql-5.7.27.tar.gz、ダウンロードをクリックして、MySQLのソースコードコンパイルパッケージc.boost:boost_を準備します1_59_0.tar.gz、ダウンロードをクリックし、MySQL 5.7をインストールする場合は、boostライブラリ、MySQL 5に依存する必要があります.7対応するboostバージョンは1.59 dである.cmake:cmake-2.8.12.2.tar.gzは、ダウンロードをクリックしてMySQLをコンパイルインストールする場合、cmake方式でコンパイルインストールを行うため、まずcmakeをインストールする必要があります
    3.設置方法
    3.1コンパイルインストールcmake
    #toolsディレクトリを作成し、すべてのパッケージを一緒に配置することをお勧めします.
    [root@192168066012_MySQL_5_7_27 ~]# mkdir -p /home/tools/
    [root@192168066012_MySQL_5_7_27 ~]# cd /home/tools/
    [root@192168066012_MySQL_5_7_27 tools]# ls -l
    total 143932
    -rw-r--r--  1 root root 83709983 Jul 31 18:34 boost_1_59_0.tar.gz
    -rw-r--r--  1 root root  6068231 Jul 31 18:36 cmake-2.8.12.2.tar.gz
    -rw-r--r--  1 root root 54398696 Jul 31 18:34 mysql-5.7.27.tar.gz

    #cmakeインストールパッケージを解凍
    [root@192168066012_MySQL_5_7_27 tools]# tar xf cmake-2.8.12.2.tar.gz
    [root@192168066012_MySQL_5_7_27 tools]# cd cmake-2.8.12.2
    [root@192168066012_MySQL_5_7_27 cmake-2.8.12.2]# ll
    total 3056
    -rwxr-xr-x   1  501 games   53974 Jan 17  2014 bootstrap
    -rw-r--r--   1  501 games  254736 Jan 17  2014 ChangeLog.manual
    -rw-r--r--   1  501 games 2603523 Jan 17  2014 ChangeLog.txt
    -rw-r--r--   1  501 games    5465 Jan 17  2014 CMakeCPack.cmake
    -rw-r--r--   1  501 games    3436 Jan 17  2014 CMakeCPackOptions.cmake.in
    -rw-r--r--   1  501 games     153 Jan 17  2014 CMakeGraphVizOptions.cmake
    -rw-r--r--   1  501 games   25439 Jan 17  2014 CMakeLists.txt
    -rw-r--r--   1  501 games    4481 Jan 17  2014 CMakeLogo.gif
    -rw-r--r--   1  501 games     796 Jan 17  2014 cmake_uninstall.cmake.in
    -rw-r--r--   1  501 games    2515 Jan 17  2014 CompileFlags.cmake
    -rwxr-xr-x   1  501 games      99 Jan 17  2014 configure
    -rw-r--r--   1  501 games    2637 Jan 17  2014 Copyright.txt
    -rw-r--r--   1  501 games    1050 Jan 17  2014 CTestConfig.cmake
    -rw-r--r--   1  501 games    3338 Jan 17  2014 CTestCustom.cmake.in
    -rw-r--r--   1  501 games     145 Jan 17  2014 CTestCustom.ctest.in
    -rw-r--r--   1  501 games     809 Jan 17  2014 DartConfig.cmake
    -rw-r--r--   1  501 games    4144 Jan 17  2014 DartLocal.conf.in
    drwxr-xr-x   3 root root      142 Aug  1 14:32 Docs
    -rw-r--r--   1  501 games   28046 Jan 17  2014 doxygen.config
    drwxr-xr-x   4 root root       53 Aug  1 14:32 Example
    drwxr-xr-x   9 root root    16384 Aug  1 14:32 Modules
    -rw-r--r--   1  501 games    1946 Jan 17  2014 Readme.txt
    drwxr-xr-x   7 root root    24576 Aug  1 14:32 Source
    drwxr-xr-x   2 root root     4096 Aug  1 14:32 Templates
    drwxr-xr-x 169 root root     8192 Aug  1 14:32 Tests
    drwxr-xr-x  15 root root     4096 Aug  1 14:32 Utilities

    #コンパイルインストール開始
    [root@192168066012_MySQL_5_7_27 cmake-2.8.12.2]# ./configure
    ...  
    CMake has bootstrapped.  Now run gmake.

    #Now run gmakeの説明OKを見て、gmake&&gmake installを行うことができます
    [root@192168066012_MySQL_5_7_27 cmake-2.8.12.2]# gmake
    ...  
    [100%] Built target pseudonl_valgrind
    [root@192168066012_MySQL_5_7_27 cmake-2.8.12.2]# gmake install
    ...  
    -- Installing: /usr/local/share/cmake-2.8/completions/ctest

    ヒント:各ステップが終了すると、echo $?を使用して、戻り値が0の場合、コンパイルプロセスが正常であることを示します.
    3.2 boostライブラリを/usr/local/ディレクトリに解凍する
    #/usr/local/ディレクトリへの解凍を指定し、-Cパラメータを使用
    [root@192168066012_MySQL_5_7_27 tools]# tar xf boost_1_59_0.tar.gz -C /usr/local/
    [root@192168066012_MySQL_5_7_27 tools]# cd /usr/local/
    [root@192168066012_MySQL_5_7_27 local]# mv boost_1_59_0/ boost
    [root@192168066012_MySQL_5_7_27 local]# ls -l
    total 0
    drwxr-xr-x. 2 root root   45 Jul 30 19:49 bin
    drwx------  8  501 games 302 Aug 12  2015 boost
    drwxr-xr-x  3 root root   23 Jul 30 19:49 doc
    drwxr-xr-x. 2 root root    6 Apr 11  2018 etc
    drwxr-xr-x. 2 root root    6 Apr 11  2018 games
    drwxr-xr-x. 2 root root    6 Apr 11  2018 include
    drwxr-xr-x. 2 root root    6 Apr 11  2018 lib
    drwxr-xr-x. 2 root root    6 Apr 11  2018 lib64
    drwxr-xr-x. 2 root root    6 Apr 11  2018 libexec
    drwxr-xr-x  3 root root   18 Jul 30 19:49 man
    drwxr-xr-x. 2 root root    6 Apr 11  2018 sbin
    drwxr-xr-x. 7 root root   81 Jul 30 19:49 share
    drwxr-xr-x. 2 root root    6 Apr 11  2018 src

    3.3 MySQL 5.7を解凍し、コンパイルインストールを行う
    3.3.1 MySQL 5.7の依存パッケージのインストール
    [root@192168066012_MySQL_5_7_27 tools]# yum install ncurses-devel -y
    ...  
    Installed:
        ncurses-devel.x86_64 0:5.9-14.20130511.el7_4
    
    Complete!
    [root@192168066012_MySQL_5_7_27 tools]# yum install libaio-devel -y
    ...  
    Installed:
      libaio-devel.x86_64 0:0.3.109-13.el7
    
    Dependency Installed:
      libaio.x86_64 0:0.3.109-13.el7
    
    Complete!

    ヒント:MySQL 5.7依存パッケージ:gcc gcc-c++ncurses ncurses-devel bison makeなど参考に、インストール前にrpm-qa|grep${パッケージ名}でチェックしてください
    3.3.2 MySQLファイル保存ディレクトリ、ユーザーおよびグループの作成
    #MySQLマルチインスタンスの関連ファイルディレクトリの作成
    [root@192168066012_MySQL_5_7_27 tools]# mkdir -p /application/mysql
    [root@192168066012_MySQL_5_7_27 tools]# mkdir -p /application/mysql/logs
    [root@192168066012_MySQL_5_7_27 tools]# mkdir -p /application/mysql/data/{3306,3307}/data
    [root@192168066012_MySQL_5_7_27 tools]# tree -L 3 /application/mysql/data/
    /application/mysql/data/
    |-- 3306
    |   `-- data
    `-- 3307
        `-- data
    
    4 directories, 0 files

    #mysqlグループとユーザーの作成
    [root@192168066012_MySQL_5_7_27 tools]# groupadd mysql
    [root@192168066012_MySQL_5_7_27 tools]# useradd mysql -s /sbin/nologin -M -g mysql
    [root@192168066012_MySQL_5_7_27 tools]# id mysql
    uid=1000(mysql) gid=1000(mysql) groups=1000(mysql)

    説明:-s/sbin/nologinユーザーはシステムにログインできません-MユーザーのHOMEディレクトリを作成しません-gユーザーログイングループのGIDまたはグループ名を指定します
    3.3.3コンパイルインストールMySQL 5.7
    #解凍ソースmysql-5.7.27.tar.gzインストールパッケージ
    [root@192168066012_MySQL_5_7_27 tools]# cd /home/tools/
    [root@192168066012_MySQL_5_7_27 tools]# tar xf mysql-5.7.27.tar.gz

    #cmake構成コンパイルパラメータ
    [root@192168066012_MySQL_5_7_27 tools]# cd mysql-5.7.27
    [root@192168066012_MySQL_5_7_27 mysql-5.7.27]# cmake . -DCMAKE_INSTALL_PREFIX=/application/mysql \
     -DMYSQL_DATADIR=/application/mysql/data \
     -DMYSQL_UNIX_ADDR=/application/mysql/tmp/mysql.sock \
     -DDEFAULT_CHARSET=utf8 \
     -DDEFAULT_COLLATION=utf8_general_ci \
     -DEXTRA_CHARSETS=gbk,gb2312,utf8,ascii \
     -DENABLED_LOCAL_INFILE=ON \
     -DWITH_INNOBASE_STORAGE_ENGINE=1 \
     -DWITH_FEDERATED_STORAGE_ENGINE=1 \
     -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
     -DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \
     -DWITHOUT_PARTITION_STORAGE_ENGINE=1 \
     -DWITH_ZLIB=bundled \
     -DWITH_EMBEDDED_SERVER=1 \
     -DWITH_DEBUG=0 \
     -DWITH_BOOST=/usr/local/boost

    #cmakeのコンパイルが完了し、makeを実行してインストールを続行することを説明するメッセージが表示されます.
     -- Configuring done
     -- Generating done
     -- Build files have been written to: /home/tools/mysql-5.7.27

    #make installのインストールを続行
    ...  
     Linking CXX executable my_safe_process
     [100%] Built target my_safe_process

    #インストール完了
    ...  
     -- Installing: /application/mysql-5.7.27/share/aclocal/mysql.m4
     -- Installing: /application/mysql-5.7.27/support-files/mysql.server

    ヒント:上記の操作にエラーが発生していない場合(各ステップの終了後、echo$?戻り値が0かどうかを見て、0であれば正しい)は、/アプリケーション/mysql/ディレクトリを表示し、その下に内容がある場合はMySQL 5を表す.7.27ソースパッケージはcmake方式でインストールに成功した
    3.4 MySQLシステム環境変数の構成
    [root@192168066012_MySQL_5_7_27 ~]# echo 'export PATH=/application/mysql/bin:$PATH' >>/etc/profile
    [root@192168066012_MySQL_5_7_27 ~]# tail -1 /etc/profile
    export PATH=/application/mysql/bin:$PATH

    #/etc/profileプロファイルをすぐに有効にする
    [root@192168066012_MySQL_5_7_27 ~]# source /etc/profile
    [root@192168066012_MySQL_5_7_27 ~]# echo $PATH
    /application/mysql/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

    3.5データベースの初期化
    3.5.1構成my.cnfファイル
    #修正/etc/my.cnfファイルは、5.6以前のバージョンとは異なり、5.7バージョンのsupport-filesディレクトリにはありません.cnfファイルなので、自分で手動で編集する必要があります
    [root@192168066012_MySQL_5_7_27 ~]# cp /etc/my.cnf /etc/my.cnf.bak
    [root@192168066012_MySQL_5_7_27 ~]# vim /etc/my.cnf
    [mysqld_multi]
    mysqld = /application/mysql/bin/mysqld
    mysqladmin = /application/mysql/bin/mysqladmin
    log = /application/mysql/logs/mysql_multi.log
    
    [mysqld1]
    port = 3306
    user = mysql
    character_set_server = utf8
    socket = /application/mysql/data/3306/mysql.sock
    datadir = /application/mysql/data/3306/data
    pid-file = /application/mysql/data/3306/mysql.pid
    log-bin = /application/mysql/data/3306/mysql-bin
    server-id = 1
    log-error = /application/mysql/data/3306/mysql_boyu3306.err
    
    [mysqld2]
    port = 3307
    user = mysql
    character_set_server = utf8
    socket = /application/mysql/data/3307/mysql.sock
    datadir = /application/mysql/data/3307/data
    pid-file = /application/mysql/data/3307/mysql.pid
    log-bin = /application/mysql/data/3307/mysql-bin
    server-id = 3
    log-error = /application/mysql/data/3307/mysql_boyu3307.err

    ヒント:MySQLインスタンスを追加する場合は、myを変更することに注意してください.cnfプロファイルと起動スクリプトファイルのportとserver-idは、すでに実行されているインスタンスと衝突しないでください.
    3.5.2修正my.cnfファイルの所有者と所有者グループ
    [root@192168066012_MySQL_5_7_27 ~]# chown mysql:mysql /etc/my.cnf

    3.5.3 MySQLインストールディレクトリの所有者と所有者グループの変更
    [root@192168066012_MySQL_5_7_27 ~]# chown -R mysql:mysql /application/mysql/

    3.5.4データベースの初期化
    [root@192168066012_MySQL_5_7_27 data]# cd /application/mysql/
    [root@192168066012_MySQL_5_7_27 mysql]# ./bin/mysqld --initialize-insecure --user=mysql --basedir=/application/mysql --datadir=/application/mysql/data/3306/data/
    2019-08-07T03:33:57.693586Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
    2019-08-07T03:33:57.973904Z 0 [Warning] InnoDB: New log files created, LSN=45790
    2019-08-07T03:33:58.013774Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
    2019-08-07T03:33:58.070602Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: 30a49b8b-b8c4-11e9-b40d-000c290943d8.
    2019-08-07T03:33:58.072487Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
    2019-08-07T03:33:58.074274Z 1 [Warning] root@localhost is created with an empty password ! Please consider switching off the --initialize-insecure option.
    [root@192168066012_MySQL_5_7_27 mysql]# ./bin/mysqld --initialize-insecure --user=mysql --basedir=/application/mysql --datadir=/application/mysql/data/3307/data/
    2019-08-07T03:34:06.558576Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
    2019-08-07T03:34:06.792397Z 0 [Warning] InnoDB: New log files created, LSN=45790
    2019-08-07T03:34:06.835971Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
    2019-08-07T03:34:06.893802Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: 35e6eba6-b8c4-11e9-b7dc-000c290943d8.
    2019-08-07T03:34:06.896053Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
    2019-08-07T03:34:06.897815Z 1 [Warning] root@localhost is created with an empty password ! Please consider switching off the --initialize-insecure option.

    ヒント:初期化時、dataディレクトリは空のディレクトリでなければなりません.そうしないと、初期化に失敗し、次の情報をエラーします.
    2019-08-07T06:58:34.828541Z 0 [ERROR] --initialize specified but the data directory has files in it. Aborting.
    2019-08-07T06:58:34.828576Z 0 [ERROR] Aborting

    なぜデータベースを初期化しますか?a.初期化の主な目的は基礎的なデータベースを作成することである.例えば、MySQLライブラリ、テーブルなどb.初期化後、対応するインスタンスのデータディレクトリを表示すると、以下の情報が見られる.
    [root@192168066012_MySQL_5_7_27 mysql]# tree -L 3 /application/mysql/data/
    /application/mysql/data/
    |-- 3306
    |   `-- data
    |       |-- auto.cnf
    |       |-- ib_buffer_pool
    |       |-- ibdata1
    |       |-- ib_logfile0
    |       |-- ib_logfile1
    |       |-- mysql
    |       |-- performance_schema
    |       `-- sys
    `-- 3307
        `-- data
            |-- auto.cnf
            |-- ib_buffer_pool
            |-- ibdata1
            |-- ib_logfile0
            |-- ib_logfile1
            |-- mysql
            |-- performance_schema
            `-- sys
    
    10 directories, 10 files

    3.5.5インスタンスがSSL接続を開く
    [root@192168066012_MySQL_5_7_27 mysql]# /application/mysql/bin/mysql_ssl_rsa_setup --user=mysql --basedir=/application/mysql --datadir=/application/mysql/data/3306/data/
    Generating a 2048 bit RSA private key
    .....................+++
    ......+++
    writing new private key to 'ca-key.pem'
    -----
    Generating a 2048 bit RSA private key
    ............+++
    .................+++
    writing new private key to 'server-key.pem'
    -----
    Generating a 2048 bit RSA private key
    ........................................................+++
    ...............................+++
    writing new private key to 'client-key.pem'
    -----
    [root@192168066012_MySQL_5_7_27 mysql]# /application/mysql/bin/mysql_ssl_rsa_setup --user=mysql --basedir=/application/mysql --datadir=/application/mysql/data/3307/data/
    Generating a 2048 bit RSA private key
    ..................................................................+++
    ..............................+++
    writing new private key to 'ca-key.pem'
    -----
    Generating a 2048 bit RSA private key
    .....+++
    ...............................................................+++
    writing new private key to 'server-key.pem'
    -----
    Generating a 2048 bit RSA private key
    .........+++
    ......+++
    writing new private key to 'client-key.pem'
    -----

    3.5.6 dataディレクトリのserver-keyを変更する.pemファイル権限
    [root@192168066012_MySQL_5_7_27 ~]# cd /application/mysql/data/3306/data/
    [root@192168066012_MySQL_5_7_27 data]# chmod +r server-key.pem
    [root@192168066012_MySQL_5_7_27 data]# ls -lh server-key.pem
    -rw-r--r-- 1 root root 1.7K Aug  7 15:07 server-key.pem
    [root@192168066012_MySQL_5_7_27 data]# cd /application/mysql/data/3307/data/
    [root@192168066012_MySQL_5_7_27 data]# chmod +r server-key.pem
    [root@192168066012_MySQL_5_7_27 data]# ls -lh server-key.pem
    -rw-r--r-- 1 root root 1.7K Aug  7 15:07 server-key.pem

    ヒント:ファイルserver-keyを渡さない場合.pem他のユーザやグループの読み取り可能権限の場合、データベースを起動すると、次のエラーが報告されます2019-08-07 T 06:39:24.11526 Z 0[ERROR]SSL error:Unable to get private key from'server-key.pem'2019-08-07T06:39:24.111555Z 0 [Warning] Failed to set up SSL because of the following SSL library error: Unable to get private key
    3.6 MySQLデータベースの起動
    3.6.1起動スクリプトを/etc/initにコピーする.d/ディレクトリの下でmysqldと名前を変更Multi、実行可能権限を付与
    [root@192168066012_MySQL_5_7_27 ~]# cd /application/mysql
    [root@192168066012_MySQL_5_7_27 mysql]# cp support-files/mysqld_multi.server /etc/init.d/mysqld_multi
    [root@192168066012_MySQL_5_7_27 mysql]# chmod +x /etc/init.d/mysqld_multi
    [root@192168066012_MySQL_5_7_27 mysql]# ll /etc/init.d/mysqld_multi
    -rwxr-xr-x 1 root root 1061 8    7 11:38 /etc/init.d/mysqld_multi

    3.6.2スクリプトのMySQLインストールディレクトリとbinディレクトリの絶対パスの変更
    [root@192168066012_MySQL_5_7_27 mysql]# diff /application/mysql/support-files/mysqld_multi.server /etc/init.d/mysqld_multi
    17,18c17,18
    < basedir=/usr/local/mysql
    < bindir=/usr/local/mysql/bin
    ---
    > basedir=/application/mysql
    > bindir=/application/mysql/bin

    ヒント:MySQLが/usr/local/ディレクトリにインストールされていない場合は、マルチインスタンスmysqld_を変更する必要があります.Multiはスクリプトを起動し、basedir=${MySQLインストールディレクトリ}、bindir=${MySQLインストールディレクトリの下のbinディレクトリ}を起動します.そうしないと、起動スクリプトを実行すると「Can't execute/usr/local/mysql/bin/mysqld_multi from dir/usr/local/mysql」エラーが表示されます.
    3.6.3システムサービスを再ロードし、MySQLデータベースを電源投入してから起動する
    [root@192168066012_MySQL_5_7_27 mysql]# /bin/systemctl daemon-reload
    [root@192168066012_MySQL_5_7_27 mysql]# /bin/systemctl enable mysqld_multi
    mysqld_multi.service is not a native service, redirecting to /sbin/chkconfig.
    Executing /sbin/chkconfig mysqld_multi on
    [root@192168066012_MySQL_5_7_27 mysql]# chkconfig --list
    
    Note: This output shows SysV services only and does not include native
          systemd services. SysV configuration data might be overridden by native
          systemd configuration.
    
          If you want to list systemd services use 'systemctl list-unit-files'.
          To see services enabled on particular target use
          'systemctl list-dependencies [target]'.
    
    mysqld_multi    0:off   1:off   2:on    3:on    4:on    5:on    6:off
    netconsole      0:off   1:off   2:off   3:off   4:off   5:off   6:off
    network         0:off   1:off   2:on    3:on    4:on    5:on    6:off

    3.6.4 MySQLデータベースを起動し、ポートのリスニング状態を確認する
    [root@192168066012_MySQL_5_7_27 mysql]# /etc/init.d/mysqld_multi report
    Reporting MySQL servers
    MySQL server from group: mysqld1 is not running
    MySQL server from group: mysqld2 is not running
    [root@192168066012_MySQL_5_7_27 mysql]# /etc/init.d/mysqld_multi start
    [root@192168066012_MySQL_5_7_27 mysql]# netstat -lntup
    Active Internet connections (only servers)
    Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
    tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      6568/sshd
    tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      6814/master
    tcp6       0      0 :::3306                 :::*                    LISTEN      7404/mysqld
    tcp6       0      0 :::3307                 :::*                    LISTEN      7407/mysqld
    tcp6       0      0 :::22                   :::*                    LISTEN      6568/sshd
    tcp6       0      0 ::1:25                  :::*                    LISTEN      6814/master

    3.7 MySQLデータベースへの接続
    3.7.1 socketが3306データベースにログインすることを指定する
    [root@192168066012_MySQL_5_7_27 mysql]# mysql -S /application/mysql/data/3306/mysql.sock
    Welcome to the MySQL monitor.  Commands end with ; or \g.
    Your MySQL connection id is 2
    Server version: 5.7.27-log Source distribution
    
    Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
    
    Oracle is a registered trademark of Oracle Corporation and/or its
    affiliates. Other names may be trademarks of their respective
    owners.
    
    Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
    
    mysql> \q
    Bye

    3.7.2 socketが3307データベースにログインすることを指定する
    [root@192168066012_MySQL_5_7_27 mysql]# mysql -S /application/mysql/data/3307/mysql.sock
    Welcome to the MySQL monitor.  Commands end with ; or \g.
    Your MySQL connection id is 2
    Server version: 5.7.27-log Source distribution
    
    Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
    
    Oracle is a registered trademark of Oracle Corporation and/or its
    affiliates. Other names may be trademarks of their respective
    owners.
    
    Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
    
    mysql> \q
    Bye

    ヒント:a.ローカルログイン
  • マルチインスタンスローカルエンドログインsocketファイルによってどのインスタンスにログインするかを指定します.このファイルの具体的な位置はmysql初期化時に指定し、ローカルログイン時にログインプログラムはsocketファイルによってログインしたデータベースインスタンス
  • を判断します.
  • mysql.sock<==ファイルは、サーバがローカルクライアントと通信するUnixソケットファイル
  • である.
  • 例えばmysql-S/アプリケーション/mysql/data/3306/mysql.sockアクセス3306データベースインスタンス
  • b.リモートログイン
  • リモートログインマルチインスタンスホストのインスタンスを指定し、TCP/IPポート(port)は、MySQLプロファイルmyであるログインするmysqlインスタンスを指定する.cnfで指定します.
  • port<==ポートは「論理接続位置」であり、クライアントプログラムがコンピュータ上の特殊なサービスプログラムに割り当てられる方式
  • である.
  • リモートログイン例:
  • grant all privileges on . to root@"192.168.66.11"identified by "boyu123"; #MySQLサービス側でクライアント192.168.66.11にリモートアクセス
  • を含むすべての権限を付与
  • flush privileges; #mysqlライセンステーブル
  • を再ロード
  • select user,host from mysql,user; #変更結果の表示
  • mysql-uroot-p'boyu 123'-h 192.168.66.12-P 3306#192.168.66.11でこのコマンドを実行し、リモートでデータベース
  • にログインできます.
    3.8データベースの基本操作
    3.8.1マルチインスタンスログインパスワードの変更
    [root@192168066012_MySQL_5_7_27 mysql]# mysqladmin -u root -p password "boyu123" -S /application/mysql/data/3306/mysql.sock
    Enter password:
    mysqladmin: [Warning] Using a password on the command line interface can be insecure.
    Warning: Since password will be sent to server in plain text, use ssl connection to ensure password safety.
    [root@192168066012_MySQL_5_7_27 mysql]# mysqladmin -u root -p password "boyu123" -S /application/mysql/data/3307/mysql.sock
    Enter password:
    mysqladmin: [Warning] Using a password on the command line interface can be insecure.
    Warning: Since password will be sent to server in plain text, use ssl connection to ensure password safety.

    3.8.2エレガントにマルチインスタンスデータベースを閉じる
    #MySQL独自のスクリプトを使用
    [root@192168066012_MySQL_5_7_27 mysql]# /etc/init.d/mysqld_multi stop
    [root@192168066012_MySQL_5_7_27 mysql]# ps aux|grep mysqld
    root      23962  0.0  0.0 112708   976 pts/0    S+   20:39   0:00 grep --color=auto mysqld

    ヒント:このメソッドは、サーバ上のすべてのデータベースを同時に閉じます.1つずつ閉じるにはmysqladminメソッドを使用します.
    #mysqladminを使用する方法
    [root@192168066012_MySQL_5_7_27 mysql]# mysqladmin -uroot -p"boyu123" -S /application/mysql/data/3307/mysql.sock shutdown
    mysqladmin: [Warning] Using a password on the command line interface can be insecure.
    [root@192168066012_MySQL_5_7_27 mysql]# ps aux|grep mysqld
    mysql     24058  0.1 10.1 1181012 188944 pts/0  Sl   20:39   0:01 /application/mysql/bin/mysqld --port=3306 --user=mysql --character_set_server=utf8 --socket=/application/mysql/data/3306/mysql.sock --datadir=/application/mysql/data/3306/data --pid-file=/application/mysql/data/3306/mysql.pid --log-bin=/application/mysql/data/3306/mysql-bin --server-id=1 --log-error=/application/mysql/data/3306/mysql_boyu3306.err
    root      28235  0.0  0.0 112708   976 pts/0    S+   20:51   0:00 grep --color=auto mysqld

    3.9 MySQLのサービスは起きていないで、構想を調べます
    a.MySQLが表示されていないポートが見つかったら、少し待ってから見てください.MySQLサービスの起動が遅いb.まだだめなら、エラーログを見てください.エラーログパスはmyに配置されています.cnfのc.すべてのコマンドが返す画面の出力をよく見て、肝心な出力内容dを無視しないでください.関連サービスであれば、関連サービスのLOGを同時に表示します.