MySQL

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

More than 1 year has passed since last update.


設定ファイル

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