設定ファイル
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]のように書かれているところのこと)
[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
各セクションと設定可能項目
-
[mysqld]
サーバーシステム変数の「オプションファイル」以下に
「はい」と書かれている項目 -
[client], [mysql]
mysql のオプション -
[mysqld_safe]
mysqld_safe — MySQL サーバー起動スクリプト -
その他セクション
-
各クライアントプログラムでは、[プログラム名]もしくは[client]でオプションを設定できる
[MySQL クライアントプログラム](https://dev.mysql.com/doc/refman/5.6/ja
/programs-client.html) -
[mysql.server]
mysql.server — MySQL サーバー起動スクリプト -
[mysqld_multi]
mysqld_multi — 複数の MySQL サーバーの管理
デフォルトmy.cnf
RPMインストール時のデフォルトのmy.cnf(MySQLの設定ファイル)は以下
# 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の設定状況を確認
SHOW GLOBAL VARIABLES;
+--------------------------------------------------------+--------+
| Variable_name | Value |
+--------------------------------------------------------+--------+
| auto_increment_increment | 1 |
.
.
.
| wait_timeout | 28800 |
+--------------------------------------------------------+--------+
LIKE文で特定の項目のみに絞れる
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