LoginSignup
211

More than 5 years have passed since last update.

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

Last updated at Posted at 2016-03-01

設定ファイル

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

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
211