なからなLife

geekに憧れと敬意を抱きながら、SE、ITコンサル、商品企画、事業企画、管理会計、総務・情シス、再び受託でDB屋さんと流浪する人のブログです。

MySQLのサーバーパラメータ

MySQLのパラメータの指定方法は色々ある。

ということで、結構な頻度で調べることになるんだけど、毎回迷うから、ここに記録しておきます。


ちょっと設定変えて挙動を見たい時に、動的変更可能な変数なら
set [global] variable パラメータ名=設定値;
でいいんだけど、静的設定のみの場合は、オプションファイルに書くか、起動引数に与えてあげなきゃいけないです。


一時的な設定変更実験だと、起動引数がらくかな、って思うものの、serviceコマンドで起動停止する癖がついているので、起動引数を渡す習慣がないし。


なので、オプションファイル「my.cnf」を使う機会が多いです。



以下、マニュアルから抜粋。マニュアルも分量が多いし見出しペインに章番号書いてないから、マニュアルからこの記述を見つけ出すのも割と手間だったりするので、自分の備忘用メインです。


UnixLinux、および OS X では、MySQL プログラムは起動オプションを次のファイルから指定された順 (トップの項目が最初に使用されます) で読み取ります。

ファイル名 目的
/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 ログインパスオプション

MySQL :: MySQL 5.6 リファレンスマニュアル :: 4.2.6 オプションファイルの使用

記述にもコツがある。

設定ファイルの場所がわかったら、そのファイルを編集するのだけど、ファイルの中にもブロック指定があって、間違ったブロックにオプション追記しても機能しないのね。


暫定的につけたことを忘れないように、ファイルの最後に追加!とかやっても、期待通りに読み込んでくれない。
ちゃんと[mysqld]のブロックに書いてあげないと。

Oracleって扱いやすかったんだな。

Oracleも、MySQLと同様にパラメータを管理するファイルを持ってます。


しかし、Oracleはいつしか(9iあたりだったか)、サーバーパラメータを管理するファイルを「init.ora」で有名なテキストベースのファイルから、バイナリベースの「spfile」に切り替えました。


Oracleのspfileってバイナリだから直接編集できなくて、最初はめんどくせえ、って思ってました。


でも、こうして振り返ってみると、バイナリのspfileを採用してから使えるようになった「ALTER SYSTEM SET ~ SCOPE=BOTH(またはspfile)」、ってファイルの場所で迷うことなく設定をファイルに書き出せるから便利なんだなっ、って思った今日このごろ。


MariaDB&MySQL全機能バイブル

MariaDB&MySQL全機能バイブル

Oracle データベース ポケットリファレンス ~Oracle11g/12c対応

Oracle データベース ポケットリファレンス ~Oracle11g/12c対応