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

my.cnf についてまとめた

More than 1 year has passed since last update.

これまで

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 など指定するときもある
Why do not you register as a user and use Qiita more conveniently?
  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
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