MySQL サーバイメージのユーザーガイド
    • PDF

    MySQL サーバイメージのユーザーガイド

    • PDF

    Article Summary

    Classic/VPC環境で利用できます。

    Ncloud MySQL 設置型サービス紹介

    NAVERクラウドプラットフォームNcloud MySQL設置型サービスの概念と基本的な構造を説明します。
    NAVERクラウドプラットフォームは、世界で最も一般的なオープンソースリレーショナルデータベース(RDBMS)MySQLをサポートしています。

    MySQL

    世界で最も人気があり、最も多く使われるオープンソースベースのリレーショナルデータベースシステム(Relational Database Management System、以下RDBMS)です。他のRDMBSと同様にデータベースを作成して、テーブル、コラム単位の構造を使って、レコード単位のデータを照会・変更・追加・削除します。別のGUIを提供せず、主にCLI(Command Line Interface)を用いて管理し、GUIベースの管理のためにMySQLで提供されるWorkbenchやThird Party-Toolを使用します。

    2008年SunがMySQL ABを買収した後、2010年にOracleがSunを買収し、現在MySQLEnterprise/ Community Versionのすべての権利は、Oracleが所有しています。

    NAVERクラウドで提供されるNcloud MySQL設置型サービスでは、MySQL Community Edition(GPL)を提供してBasic Installレベルの既設の画像をサポートします。

    NAVERクラウドプラットフォームNcloud MySQL設置型サービスの構成

    設置型サービス

    NAVERクラウドでサポートしているNcloud MySQL設置型サービスの場合、DBのインストールについて円滑な運用基準を提示する環境ファイルを提供し、DBの状態がわかるCLI形態のモニタリングBinaryを含むMySQL DaemonにStartup状態までサポートします。これに関連してDBのインストール以外の部分については、技術サポートはしていません

    RPM/APT

    MySQLのインストール方法には、Source Compileインストール方法、RPM/ APTのインストール方法、Binaryのインストール方法があり、NAVERクラウドでは、Normal Install方法である(RPM APT)のインストールイメージを提供します。RPM(APT)で使用される.repoファイルは、MySQLで公式的に提供するファイルを使ってインストールを行い、Repoで提供されるLatest Versionを基本に、サーバのイメージに入れて提供します。

    CentOS 7.x with MySQLで使用するRPMのインストールパッケージは、以下のように構成されます。

    MySQLのインストール及び実行に関連してOS Default設定で追加インストールされるパッケージです。

    • mysql-server
    • mysql-devel
    • libmysqlclient-dev
    • build-essential

    APT Install

    Ubuntu14.X/16.X with MySQLで使用されるAPTでインストールするパッケージは、以下のように構成されます。

    MySQLのインストール及び実行に関連してOS Default設定で追加インストールされるパッケージです。

    • mysql-server
    • libmysqlclient-dev

    Recommanded Parameters (5.6/5.7 共通)

    NAVERクラウドプラットフォームのNcloud MySQLインストールイメージで標準化されたRecommanded Parameterは、以下のように構成されています。

    • innodb_file_per_table
    • innodb_log_file_size = 512M
    • innodb_log_files_in_group = 2
    • default_storage_engine=InnoDB
    • query_cache_type = ON
    • query_cache_size = 0M
    • sysdate-is-now

    innodb_file_per_table

    InnoDBテーブルの作成時にInnoDB Global Tablespaceを使用すれば、テーブル削除時にすでに増えた物理サイズは小さくなりません。
    innodb_file_per_tableオプションを使用すると、InnoDBテーブルの作成時にはテーブルごとにファイルを作成し、テーブルの削除時には該当ファイルが削除され、物理空間を確保することができます。

    Innodb_log_file_size/innodb_log_files_in_group

    Heavy Trafficが入ってくる場合、CheckPointのためのボトルネックを回避するためにinnodb_log_file_sizeオプションを増やして設定します。該当Variablesを調整するためには、DB Restartが必要です。

    default_storage_engine

    Online-DDL 及び Transction使用が可能なInnoDBで標準を指定します。

    query_cache_type/query_cache_size

    DB起動後、query_cacheをユーザーが動的にON/ OFFできるようにON/0に設定します。以降のサービスの状況に合わせて調整します。

    sysdate-is-now

    ysdateを使用している場合は、Replication構成でMaster-Slave間でのデータ処理時間が異なる場合、Time Typeデータが異なる場合があり、sysdateの場合は自動的にnowをreplaceします。

    Ncloud MySQL 設置型サービスの管理

    MySQL設置型サービスで関連する管理方法を説明します。

    MySQL 画像サーバの生成

    Ncloud MySQLがインストールされたインスタンスサーバを生成すると、以下のようにNAVERクラウドに標準化されたmy.cnfの環境を持つMySQL DaemonがStartupして生成された後、Daemonが起動してから提供されます。

    my.cnf

    my.cnf의 Parameter説明は下記の通りです。

    属性説明
    expire_logs_days = 7log-binに設定されたログのサイズが大きくなることを防止するために7日間保存するようにします。
    innodb_file_per_tableInnoDBテーブルの作成時にInnoDB Global Tablespaceを使用すれば、テーブルの削除時すでに増え、物理サイズは小さくなりません。
    innodb_file_per_tableオプションを使用すると、InnoDBテーブルの作成時にはテーブルごとにファイルを作成し、テーブルの削除時には該当ファイルが削除され、物理空間を確保することができます。
    innodb_log_file_sizeHeavy Trafficが入ってくる場合、CheckPointのためのボトルネックを回避するためにinnodb_log_file_sizeオプションを増やします。
    Variablesを調整するためには、DB Restartが必要。
    iinnodb_log_files_in_groupinnodb_log_fileの数を指定します。Rotationのために2つ以上を推奨します。
    default_storage_engineOnline-DDL 及び Transction使用が可能な InnoDBで標準を指定します。
    query_cache_type

    query_cache_size
    DB起動後、query_cacheをユーザーが動的にON/ OFFできるようにON/0に設定します。以降のサービスの状況に合わせて調整します。
    sysdate-is-nowsysdateを使用している場合は、Replication構成でMaster-Slave間でのデータ処理時間が異なる場合にTime Typeデータが異なる場合があり、sysdateの場合は自動的にnowをreplaceします。
    log_timestamps = SYSTEM(5.7 only)MySQL 5.7で LogTimeが UTCになっているため、SYSTEM Local TIMEに変更します。

    MySQLインストールされたディレクトリは、以下の通りです。

    属性説明
    DATADIR/var/lib/mysql/
    SLOW_LOG/var/lib/mysql/*slow.log
    ERROR_LOG/var/log/mysqld.log - CentOS

    /var/log/mysql/error.log - Ubuntu
    my.cnf/etc/my.cnf - CentOS

    /etc/mysql/my.cnf - Ubuntu.
    sqlstatus_nCloud/usr/bin/sqlstatus_nCloud

    サーバ生成の手順

    MySQLサーバ生成のプロセスは以下の通りです。

    www.ncloud.com 接続及びLogin

    1. 右上のコンソールを選択して、コンソールにアクセスします。

    2. コンソール画面で、サーバ生成を選択します。

    サーバの生成

    Step 1. サーバイメージの選択

    ① DBMS > MySQL イメージを選択します。

    ② OS Versionに該当するMySQL Versionをチェックした後、[次へ] ボタンを選択します。

    ③ ポップアップウィンドウの案内を確認します。

    ④ [確認] ボタンをクリックしてポップアップウィンドウを閉じます。

    Step 2. サーバの設定

    下記のようにサーバタイプと希望する料金制を選択します。

    Step 3. 認証キーの設定

    ユーザーの認証キーを選択します。

    Step 4. ファイアウォールの設定

    保有しているACGを選択するか、新規に作成します。

    Step 5. 最終確認

    選択された内容を確認した後、MySQLがインストールされたサーバを生成します。

    サーバ接続の設定及び確認

    ポートフォワーディングの設定

    1. サーバの生成後、上部の [ポートフォワーディングの設定] ボタンを選択します。

    2. 下の画面のポートフォワーディング設定でssh接続のための外部ポートを登録します。

    3. 外部ポートの登録後、[追加] を選択します。

    4. [適用] をクリックします。

    管理者パスワードの確認

    1. ポートフォワーディングの設定後、上部の [サーバの管理と設定の変更] ボタンを選択します。

    2. 以後、ポップアップメニューから管理者パスワードの確認を選択します。

    3. 管理者パスワードの確認ボックスからファイルの選択の認証キーファイルを選択します。

    4. [パスワードの確認] ボタンをクリックします。

    5. 以降、画面に表示されたパスワードを認知します。

    ターミナルを通じたサーバ接続

    ターミナルプログラムを使用して下記のように接続します。

    • PORT : ポートフォワーディングに設定したポート番号
    • グローバルIP:ポートフォワーディング画面で案内されたサーバ接続用のグローバルIP
    • パスワード:管理者パスワードに現れたパスワード(最初のパスワードは必ず変更します。)
    ssh -p [PORT] root@[グローバルIP]
    

    サーバイメージの生成後

    1. サーバの生成後、すぐに使用しない場合は、セキュリティリスクのためにMySQL DaemonShutDownします。
    2. 生成されたMySQLの場合は、パスワードが設定されていないため、必ずパスワード設定をしてください。

    MySQL 起動・停止及び接続手順

    • MySQL Daemonの起動及び停止は下記のようなコマンドで実行します。

    • CentOS

      shell> /sbin/service mysqld start
      shell> /sbin/service mysqld stop
      
    • Ubuntu

      Shell> /usr/sbin/service mysql start
      Shell> /usr/sbin/service mysql stop
      
    • MySQL Daemonの駆動有無は、以下のようなコマンドで確認します。

      Shell> ps -ef | grep mysqld
      
      • 結果: mysqld/mysqld のプロセスが表示されなければなりません。
    • NAVERクラウドで生成したMySQLは、以下のコマンドで接続します。

      Shell> mysql -uroot
      
    • MySQL Passwordポリシーに基づいて、最初のパスワードは指定されません。

    • root Passwordの場合は設定しないので、セキュリティ侵害を防止するため最初の接続時に必ずパスワードを変更します

    • root パスワードは、以下のコマンドを使用して変更します。

      • MySQL 5.6
        mysql> set password=password('パスワード');
        
      • MySQL 5.7
        mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'パスワード';
        
    • MySQL Built-in Password の基本ポリシーは下記の通りです。

      • 最小の長さ 8文字以上
      • 特殊文字1個以上
      • 数字1個以上
      • 大小文字の組み合わせ1個以上

    MySQL 画像サーバの返却

    NAVERクラウドでMySQLが生成されたサーバの返却時、以下の手順の後に返却することをお勧めします。

    1. MySQLで保存したデータのバックアップ
      • バックアップされたデータの場合、Download以降、別途に保管
    2. MySQL Daemonの停止
    3. mysqlが保存されたData Directoryを削除
      • 例: rm ‐rf /var/lib/mysql
    4. NAVERクラウドコンソールから [停止]->[返却] 順に返却を行います。

    MySQL 外部接続の許容

    UbuntuでMySQLを使う場合、 Default ParameterによってLocalhostのみで接続可能です。従って、外部接続が可能になるように、下記の例でガイドします。

    1. MySQL DB 接続

    2. アカウント権限を付与例: GRANT ALL PRIVILEGES ON *.* to 'アカウント名'@'%' IDENTIFIED BY 'パスワード';

    3. 環境ファイルの修正例: sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf

    4. bind-address コメントアウト
      database-1-115_zh

    5. MySQL 再スタート

    SQLSTATUS

    NAVERクラウドで提供されるNcloud MySQLサービスには、CLI(Command Line Interface)形式のモニタリングプログラムがあります。

    • 該当プログラムは、nCloud サーバ以外に、外部へ流出と任意に変更、または変調する場合を禁止しています。

    概要

    MySQLの内部の Statusを1秒単位に表示されるようにBinary形で提供します。
    1秒間にMySQL StatusをDisplayしてReal-TimeでDBの変化を見ることができます。

    使用法

    sqlstatus_nCloudで使用するアカウント生成(Defaultアカウントを含む)

     GRANT PROCESS, SHOW DATABASES, SUPER, EXECUTE, REPLICATION CLIENT ON *.* TO 'sqlstatus_ncloud'@'127.0.0.1' IDENTIFIED BY PASSWORD '*AB9C7542BD3FE96F5342F2A616D030CF4494EB44';
    

    インストール経路 : /usr/bin/sqlstatus_nCloud

    基本3306ポート使用時 : sqlstatus_nCloud

    3306以外のユーザーのPortを使用時 : sqlstatus_nCloudのポート番号

    使用しない場合、Defaultアカウントは削除しても構いません。(DROP USER sqlstatus\_ncloud@127.0.0.1;)

    ユーザー画面

    database-1-113_zh

    モニタリン項目の説明

    属性説明
    Portsqlstatus_nCloudで接続するDBのポート情報。
    Timeモニタリン時間。
    Conn現在DBに接続するConnection Count
    RunDBにRunning中のThread Count
    現在 DBでクエリを処理するThreadの数を表します。
    AbortDBに接続失敗するCount
    max_connection 数を超えるか、DBアカウントテーブルに登録されていないユーザーがアクセスする際の数を表示します。
    SelectDBで処理するSELECT Count
    UpdateDBで処理する UPDATE Count
    InsertDBで処理する INSERT Count
    DeleteDBで処理する DELETE Count
    ReplaceDBで処理する REPALCE Count
    QcacheQuery Cacheを通じて処理するクエリCount
    CallProcedure/Functionを使用して処理するクエリCount
    QPSDBで処理されたクエリのTotal Count
    SlaveReplication 構成されたSlaveDBの複製遅延時間
    Replicationではない場合 Default 0に表示
    userCPU normal processes executing in user mode
    systemCPU processes executing in kernel mode
    iowaitCPU waiting for I/O to complete
    Slow_querieslong_query_timeで指定された数より長く実行されるクエリCount
    Sumsqlstatusを実行した以後に生じたSlowQuery Count
    Default Parmeterは10秒で、下記のコマンドで変更可能です。(単位 Sec)
    mysql> set global long_query_time=1

    この記事は役に立ちましたか?

    Changing your password will log you out immediately. Use the new password to log back in.
    First name must have atleast 2 characters. Numbers and special characters are not allowed.
    Last name must have atleast 1 characters. Numbers and special characters are not allowed.
    Enter a valid email
    Enter a valid password
    Your profile has been successfully updated.