基礎MySQL ~その2~ my.cnf (設定ファイル)

  • 37
    Like
  • 0
    Comment

設定ファイル

MySQLに対する設定は、my.cnfというファイルに対して行う

my.cnfの読み込み順序

my.cnfの読み込まれる順序は、Linux環境では以下の順

ファイル名 目的
/etc/my.cnf グローバルオプション
/etc/mysql/my.cnf グローバルオプション
SYSCONFDIR/my.cnf グローバルオプション
$MYSQL_HOME/my.cnf サーバー固有のオプション
defaults-extra-file --defaults-extra-file=path によって指定されるファイル (ある場合)
~/.my.cnf ユーザー固有のオプション
~/.mylogin.cnf ログインパスオプション

オプションファイルの使用

my.cnfに設定できる値

設定値にはセクション(グループ?)と言われる、
オプションを設定するプログラムまたはグループの名前以下に設定する。
([mysqld]のように書かれているところのこと)

/etc/my.cnfの例
[client]                           # clientセクション: mysqlクライアントツールへの設定
port=3306
socket=/tmp/mysql.sock

[mysqld]                           # mysqldセクション: mysqlサーバーへの設定
port=3306
socket=/tmp/mysql.sock
key_buffer_size=16M
max_allowed_packet=8M

[mysqldump]                        # mysqldumpセクション: バックアップコマンドへの設定
quick

[mysqld_safe]                      # mysqld_safeセクション: 起動ファイル設定
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

各セクションと設定可能項目

デフォルトmy.cnf

RPMインストール時のデフォルトのmy.cnf(MySQLの設定ファイル)は以下

/etc/my.cnf

# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.6/en/server-configuration-defaults.html


[mysqld]
#
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
#
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
#
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock

# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0

# Recommended in standard MySQL setup
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES 

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

デフォルト設定での各PATHの設定

  • datadir: MySQLのデータファイル(テーブル定義、データ)が作成される場所

    /var/lib/mysql
    
  • errorファイル: MySQLのエラーログの出力先

    /var/log/mysqld.log
    
  • slow_query_logファイル: スローログファイル(遅いクエリ)の出力先

    /var/run/mysqld/mysqld-slow.log
    

    ※デフォルトではOFFになってるので出力されない

デフォルトのmysqldの設定状況を確認

query
SHOW GLOBAL VARIABLES;
+--------------------------------------------------------+--------+
| Variable_name                                          | Value  |
+--------------------------------------------------------+--------+
| auto_increment_increment                               | 1      |

.
.
.
| wait_timeout                                           | 28800  |
+--------------------------------------------------------+--------+

LIKE文で特定の項目のみに絞れる

query
SHOW GLOBAL VARIABLES LIKE '%「検索項目」%';

promptの変更

mysqlコマンドラインツールでログインした際のプロンプト表示を変更

[client]
prompt='\\U [\\d] > '

ログイン時の表示

root@localhost [(none)] > use mysql;
Database changed
root@localhost [mysql] >

設定可能なstrは以下参照
http://dev.mysql.com/doc/refman/5.6/ja/mysql-commands.html