これまで
DBAになるため勉強中...
- MySQL について
- MySQL のインストール(編集中)
- 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
# 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 など指定するときもある