MySQL設定メモ
・MySQL関連のログは管理しやすいように /var/log/mysql 以下へ出力する。
mkdir /var/log/mysql
chown mysql:mysql /var/log/mysql
---( /etc/my.cnf)---------------------------
[mysqld]
# 実行ユーザ
user=mysql
# データディレクトリ
datadir=/var/lib/mysql
# テンポラリディレクトリ RAMDiskなど高速なディスクを指定すると効果的
tmpdir=/tmp
# ポート番号
port=3306
# UNIXドメインソケット
socket=/var/lib/mysql/mysql.sock
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# サーバ側が使用するデフォルトの文字コード
character-set-server=utf8
# クライアント側の文字コードの設定を無視する
skip-character-set-client-handshake
# 最大接続数 増やす場合は「open_files_limit」も合わせて増やす
max_connections=151
# オープンテーブルのキャッシュ
# 「max_connections」× 1つのトランザクションで使用するテーブル数の平均値
table_open_cache=400
# 定義キャッシュに保存できるテーブル定義数 テーブル数が多い場合は増やす
table_definition_cache=400
# 同時にopenできるファイル数
open_files_limit=1024
# テーブルスキャンを実行するときに、各テーブルに割当てられるバッファサイズ
read_buffer_size=128K
# インデックスを利用してソートを行う際、このバッファを通して読込まれる
read_rnd_buffer_size=256K
# インデックスを利用せずにテーブルのJOINを行う際に割当てられるバッファサイズ
join_buffer_size=128K
# ファイルソートで利用するメモリのバッファサイズ
sort_buffer_size=1024K
# インメモリ型のテンポラリテーブルの最大サイズ この値を増やす場合は「max_heap_table_size」も合わせて増やす
tmp_table_size=16M
# インメモリ型テーブルの最大メモリサイズを設定
max_heap_table_size=16M
# クエリキャッシュサイズ
query_cache_size=0
# クエリキャッシュの動作の指定
query_cache_type=0
# ログの出力先
log_output=FILE
# スロークエリログの有効化
slow_query_log=1
# 何秒以上かかったクエリをスロークエリログへ記録するかを指定
long_query_time=1.0
# スロークエリログファイルの指定
slow_query_log_file=/var/log/mysql/slow_query.log
# クエリログの有効化
general_log=0
# クエリログファイルの指定
general_log_file=/var/log/mysql/query.log
# デフォルトのストレージエンジンの指定
default_storage_engine=InnoDB
# 保存するファイル名の変換モードの設定 InnoDBを使用する場合は1を設定
lower_case_table_names=1
# OSが利用するメモリなどを除いた利用可能なメモリの70~80%を指定
# 例)搭載メモリ512MB - 100MB = 412MB×0.8 = 330MB
innodb_buffer_pool_size=256M
# ログファイル数の指定 基本的にデフォルトの2個で問題ない
innodb_log_files_in_group=2
# ログファイルサイズの指定
#「innodb_log_file_size」×「innodb_log_files_in_group」<「innodb_buffer_pool_size」になるように設定
innodb_log_file_size=64M
# ログファイルを書き込む前に一時的にデータを溜め込んでおくためのバッファザイズ
innodb_log_buffer_size=8M
# InnnoDBのデータファイル名とサイズの指定
innodb_data_file_path=ibdata1:256M:autoextend
# データファイルが自動拡張するときに拡張するサイズ ※単位がMBなので注意
innodb_autoextend_increment=256
# テーブル毎にデータファイルを作成する
innodb_file_per_table=1
# トランザクションのコミット時に、InnoDBログファイルへデータがディスクへ同期するかどうかの指定
innodb_flush_log_at_trx_commit=1
# ファイルシステムキャッシュへのバッファリングを防ぐ
innodb_flush_method=O_DIRECT
# バイナリログを有効にし、バイナリログファイル名を指定
log-bin=mysql-bin
# バイナリログをN回のステートメントまたはトランザクションごとにフラッシュする設定
sync_binlog=1
# バイナリログのフォーマットの指定
binlog-format=MIXED
# バイナリログの最大サイズの指定
max_binlog_size=128M
# バイナリログを保存しておく日数
expire_logs_days=15
# 各MySQLサーバを識別するためのIDの設定
server-id=1
# マスター用の準同期レプリケーション設定
#plugin-load=rpl_semi_sync_master=semisync_master.so
#rpl_semi_sync_master_enabled=1
#rpl_semi_sync_master_timeout=10
# スレーブ用の準同期レプリケーション設定
#plugin-load=rpl_semi_sync_slave=semisync_slave.so
#rpl_semi_sync_slave_enabled=1
#read_only
[mysql]
# 接続に利用する文字コードの指定
default-character-set=utf8
# 警告が発生すると自動的に SHOW WARNING コマンドを実行する
show-warnings
# 自動補完機能を有効化
auto-rehash
[mysqld_safe]
# エラーログファイルの指定
log_error=/var/log/mysql/mysqld.log
# PIDファイルの指定
pid_file=/var/run/mysqld/mysqld.pid
---( /etc/my.cnf ここまで)---------------------------
・smallマシン(メモリ512MB)用のコンフィグまとめ
my.cnf
mkdir /var/log/mysql
chown mysql:mysql /var/log/mysql
---( /etc/my.cnf)---------------------------
[mysqld]
# 実行ユーザ
user=mysql
# データディレクトリ
datadir=/var/lib/mysql
# テンポラリディレクトリ RAMDiskなど高速なディスクを指定すると効果的
tmpdir=/tmp
# ポート番号
port=3306
# UNIXドメインソケット
socket=/var/lib/mysql/mysql.sock
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# サーバ側が使用するデフォルトの文字コード
character-set-server=utf8
# クライアント側の文字コードの設定を無視する
skip-character-set-client-handshake
# 最大接続数 増やす場合は「open_files_limit」も合わせて増やす
max_connections=151
# オープンテーブルのキャッシュ
# 「max_connections」× 1つのトランザクションで使用するテーブル数の平均値
table_open_cache=400
# 定義キャッシュに保存できるテーブル定義数 テーブル数が多い場合は増やす
table_definition_cache=400
# 同時にopenできるファイル数
open_files_limit=1024
# テーブルスキャンを実行するときに、各テーブルに割当てられるバッファサイズ
read_buffer_size=128K
# インデックスを利用してソートを行う際、このバッファを通して読込まれる
read_rnd_buffer_size=256K
# インデックスを利用せずにテーブルのJOINを行う際に割当てられるバッファサイズ
join_buffer_size=128K
# ファイルソートで利用するメモリのバッファサイズ
sort_buffer_size=1024K
# インメモリ型のテンポラリテーブルの最大サイズ この値を増やす場合は「max_heap_table_size」も合わせて増やす
tmp_table_size=16M
# インメモリ型テーブルの最大メモリサイズを設定
max_heap_table_size=16M
# クエリキャッシュサイズ
query_cache_size=0
# クエリキャッシュの動作の指定
query_cache_type=0
# ログの出力先
log_output=FILE
# スロークエリログの有効化
slow_query_log=1
# 何秒以上かかったクエリをスロークエリログへ記録するかを指定
long_query_time=1.0
# スロークエリログファイルの指定
slow_query_log_file=/var/log/mysql/slow_query.log
# クエリログの有効化
general_log=0
# クエリログファイルの指定
general_log_file=/var/log/mysql/query.log
# デフォルトのストレージエンジンの指定
default_storage_engine=InnoDB
# 保存するファイル名の変換モードの設定 InnoDBを使用する場合は1を設定
lower_case_table_names=1
# OSが利用するメモリなどを除いた利用可能なメモリの70~80%を指定
# 例)搭載メモリ512MB - 100MB = 412MB×0.8 = 330MB
innodb_buffer_pool_size=256M
# ログファイル数の指定 基本的にデフォルトの2個で問題ない
innodb_log_files_in_group=2
# ログファイルサイズの指定
#「innodb_log_file_size」×「innodb_log_files_in_group」<「innodb_buffer_pool_size」になるように設定
innodb_log_file_size=64M
# ログファイルを書き込む前に一時的にデータを溜め込んでおくためのバッファザイズ
innodb_log_buffer_size=8M
# InnnoDBのデータファイル名とサイズの指定
innodb_data_file_path=ibdata1:256M:autoextend
# データファイルが自動拡張するときに拡張するサイズ ※単位がMBなので注意
innodb_autoextend_increment=256
# テーブル毎にデータファイルを作成する
innodb_file_per_table=1
# トランザクションのコミット時に、InnoDBログファイルへデータがディスクへ同期するかどうかの指定
innodb_flush_log_at_trx_commit=1
# ファイルシステムキャッシュへのバッファリングを防ぐ
innodb_flush_method=O_DIRECT
# バイナリログを有効にし、バイナリログファイル名を指定
log-bin=mysql-bin
# バイナリログをN回のステートメントまたはトランザクションごとにフラッシュする設定
sync_binlog=1
# バイナリログのフォーマットの指定
binlog-format=MIXED
# バイナリログの最大サイズの指定
max_binlog_size=128M
# バイナリログを保存しておく日数
expire_logs_days=15
# 各MySQLサーバを識別するためのIDの設定
server-id=1
# マスター用の準同期レプリケーション設定
#plugin-load=rpl_semi_sync_master=semisync_master.so
#rpl_semi_sync_master_enabled=1
#rpl_semi_sync_master_timeout=10
# スレーブ用の準同期レプリケーション設定
#plugin-load=rpl_semi_sync_slave=semisync_slave.so
#rpl_semi_sync_slave_enabled=1
#read_only
[mysql]
# 接続に利用する文字コードの指定
default-character-set=utf8
# 警告が発生すると自動的に SHOW WARNING コマンドを実行する
show-warnings
# 自動補完機能を有効化
auto-rehash
[mysqld_safe]
# エラーログファイルの指定
log_error=/var/log/mysql/mysqld.log
# PIDファイルの指定
pid_file=/var/run/mysqld/mysqld.pid
---( /etc/my.cnf ここまで)---------------------------
・smallマシン(メモリ512MB)用のコンフィグまとめ
my.cnf
18
| h o m e |