Help us understand the problem. What is going on with this article?

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

More than 3 years have 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

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした