- 印刷する
- PDF
MySQL サーバイメージのユーザーガイド
- 印刷する
- PDF
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 = 7 | log-binに設定されたログのサイズが大きくなることを防止するために7日間保存するようにします。 |
innodb_file_per_table | InnoDBテーブルの作成時にInnoDB Global Tablespaceを使用すれば、テーブルの削除時すでに増え、物理サイズは小さくなりません。 innodb_file_per_tableオプションを使用すると、InnoDBテーブルの作成時にはテーブルごとにファイルを作成し、テーブルの削除時には該当ファイルが削除され、物理空間を確保することができます。 |
innodb_log_file_size | Heavy Trafficが入ってくる場合、CheckPointのためのボトルネックを回避するためにinnodb_log_file_sizeオプションを増やします。 Variablesを調整するためには、DB Restartが必要。 |
iinnodb_log_files_in_group | innodb_log_fileの数を指定します。Rotationのために2つ以上を推奨します。 |
default_storage_engine | Online-DDL 及び Transction使用が可能な InnoDBで標準を指定します。 |
query_cache_type query_cache_size | DB起動後、query_cacheをユーザーが動的にON/ OFFできるようにON/0に設定します。以降のサービスの状況に合わせて調整します。 |
sysdate-is-now | sysdateを使用している場合は、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を選択するか、新規に作成します。
- ACG使用ガイドを参考にして行います。
Step 5. 最終確認
選択された内容を確認した後、MySQLがインストールされたサーバを生成します。
サーバ接続の設定及び確認
ポートフォワーディングの設定
- ポートフォワード利用ガイドを参考にして行います。
1. サーバの生成後、上部の [ポートフォワーディングの設定] ボタンを選択します。
2. 下の画面のポートフォワーディング設定でssh接続のための外部ポートを登録します。
3. 外部ポートの登録後、[追加] を選択します。
4. [適用] をクリックします。
管理者パスワードの確認
1. ポートフォワーディングの設定後、上部の [サーバの管理と設定の変更] ボタンを選択します。
2. 以後、ポップアップメニューから管理者パスワードの確認を選択します。
3. 管理者パスワードの確認ボックスからファイルの選択の認証キーファイルを選択します。
4. [パスワードの確認] ボタンをクリックします。
5. 以降、画面に表示されたパスワードを認知します。
ターミナルを通じたサーバ接続
ターミナルプログラムを使用して下記のように接続します。
- PORT : ポートフォワーディングに設定したポート番号
- グローバルIP:ポートフォワーディング画面で案内されたサーバ接続用のグローバルIP
- パスワード:管理者パスワードに現れたパスワード(最初のパスワードは必ず変更します。)
ssh -p [PORT] root@[グローバルIP]
サーバイメージの生成後
- サーバの生成後、すぐに使用しない場合は、セキュリティリスクのためにMySQL DaemonをShutDownします。
- 生成された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 5.6
MySQL Built-in Password の基本ポリシーは下記の通りです。
- 最小の長さ 8文字以上
- 特殊文字1個以上
- 数字1個以上
- 大小文字の組み合わせ1個以上
MySQL 画像サーバの返却
NAVERクラウドでMySQLが生成されたサーバの返却時、以下の手順の後に返却することをお勧めします。
- MySQLで保存したデータのバックアップ
- バックアップされたデータの場合、Download以降、別途に保管
- MySQL Daemonの停止
- mysqlが保存されたData Directoryを削除
- 例: rm ‐rf /var/lib/mysql
- NAVERクラウドコンソールから [停止]->[返却] 順に返却を行います。
MySQL 外部接続の許容
UbuntuでMySQLを使う場合、 Default ParameterによってLocalhostのみで接続可能です。従って、外部接続が可能になるように、下記の例でガイドします。
MySQL DB 接続
アカウント権限を付与例: GRANT ALL PRIVILEGES ON *.* to 'アカウント名'@'%' IDENTIFIED BY 'パスワード';
環境ファイルの修正例: sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf
bind-address コメントアウト
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;
)
ユーザー画面
モニタリン項目の説明
属性 | 説明 |
---|---|
Port | sqlstatus_nCloudで接続するDBのポート情報。 |
Time | モニタリン時間。 |
Conn | 現在DBに接続するConnection Count |
Run | DBにRunning中のThread Count 現在 DBでクエリを処理するThreadの数を表します。 |
Abort | DBに接続失敗するCount max_connection 数を超えるか、DBアカウントテーブルに登録されていないユーザーがアクセスする際の数を表示します。 |
Select | DBで処理するSELECT Count |
Update | DBで処理する UPDATE Count |
Insert | DBで処理する INSERT Count |
Delete | DBで処理する DELETE Count |
Replace | DBで処理する REPALCE Count |
Qcache | Query Cacheを通じて処理するクエリCount |
Call | Procedure/Functionを使用して処理するクエリCount |
QPS | DBで処理されたクエリのTotal Count |
Slave | Replication 構成されたSlaveDBの複製遅延時間 Replicationではない場合 Default 0に表示 |
user | CPU normal processes executing in user mode |
system | CPU processes executing in kernel mode |
iowait | CPU waiting for I/O to complete |
Slow_queries | long_query_timeで指定された数より長く実行されるクエリCount |
Sum | sqlstatusを実行した以後に生じたSlowQuery Count Default Parmeterは10秒で、下記のコマンドで変更可能です。(単位 Sec) mysql> set global long_query_time=1 |