LoginSignup
27
39

More than 5 years have passed since last update.

my.cnf についてまとめた

Posted at

これまで

DBAになるため勉強中...

  1. MySQL について
  2. MySQL のインストール(編集中)
  3. my.cnf について   ◀ これ

my.cnf とは

  • MySQL の設定ファイル
  • さまざまなパラメータの設定をする
    ⇒ 設定がMySQLの性能を左右する 🌟
  • etc ディレクトリ配下にある ( /etc/my.cnf

my.cnf を確認してみる

$ vagrant up
$ vagrant ssh

[vagrant@localhost ~]$ cd /etc/
[vagrant@localhost ~]$ vi my.cnf

▼ デフォルトの my.cnf :baby:

# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.7/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

log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

パラメータのご紹介

デフォルトで設定されている

datadir

データベースのデータ(テーブルなど)を作成したディレクトリ

socket

UNIXソケットファイルによる接続のためのファイル名

symbolic-links

シンボリックリンクをつかうか (つかう : 1 , つかわない : 0)

log-error

サーバーから出力されるエラーメッセージを記録するファイル名

pid-file

PIDファイルが作成されているディレクトリ

デフォルトで設定されていないけどよく必要とされる

default-storage-engine

  • テーブルの作成時にデフォルトで選択されるストレージエンジンを指定する
  • 未設定のときは MyISAM がデフォルトのストレージエンジン
  • CREATE TABLE文の最後にENGINE = エンジン名 と指定することで、テーブルひとつひとつにデフォルト以外のストレージエンジンを設定できる

log-bin

  • バイナリログを有効にするためのパラメータ
  • 未設定のときはバイナリログを取得しない
  • バイナリログはリカバリでも重要なので指定するべき 👮

slow-query-log

  • 実行に一定時間(秒数)以上を要したSQL文をログファイルに出力する「スロークエリログ」を有効にするためのパラメータ
  • 未設定ではスロークエリログは取得されない
  • 性能解析のために重要な機能なので指定すべき 👮

long-query-time

  • 実行に何秒以上かかったSQL文をスロークエリログに記録するかを指定
  • 未設定のときは 10秒

max-connections

  • MySQLに接続できる上限数を指定
  • 未設定のときは 100
  • 複数台のWebサーバから一斉に大量の接続が行われる場合は 1,000 など指定するときもある
27
39
0

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
27
39