デフォルトの文字コード
default-character-set=utf8タブで入力の補完。ディストリによってはデフォルト (mysql -u xxx --no-auto-rehash で確認)
auto-rehash
[mysqld]
デフォルトの文字コード
default-character-set=utf8必ずutf8のデータが来る場合。こないとバックアップ、リストア時に悲惨かもしれない。
SELECT CHAR_LENGTH('全角の文字'); がおかしいが気にしない場合 default-character-set=binary をいろんな[xxx]に書いとけば良い。文字列関連がおかしくてもいいのであれば早くなるかもしれない。
skip-character-set-client-handshake例えばもし5.0.xxの低いバージョンから5.0.xxの高いバージョンにアップしてリストアできなくなり、実はlatin1のテーブルにutf8,sjis,eucjpなどのlatin1以外を入れていたぜ、ということであれば、該当する低いバージョンのソースかrpmなどを探して他のどこかにインストールしてリストアして成功して再度binary指定でバックアップして、などやれば助かるかもしれません。
例えば、
show create table tablename;であれば特に文字コードについてマニュアルを読むべきです。
CREATE TABLE `tablename` ... CHARSET=latin1
latin1は特殊な値ではなく文字コードなので、例えばsjisをeuc-jpとして扱うと文字化けするのと同じようなミスです。
関係ないですが
http://www.php.net/manual/ja/function.mysql-set-charset.php
注意: 文字セットを変更するにはこの方法を使うことを推奨します。 mysql_query() で SET NAMES .. を実行する方法はお勧めできません。どこかでsjisのバックスラッシュに関するドライバの設定云々と読んだような気がします。
//mysql_query("set names xxx");
mysql_set_charset("xxx");
/var/lib/mysqlのディレクトリを変更
datadir = /mnt/share/mysqlCREATE TABLE ... ENGINE=InnoDB ... 指定無しのデフォルト値
default_table_type = innodbdatadirのbinlogを10日後に消す
expire_logs_days = 10
接続数
max_connections = 80管理(rootなど)用に残す
max_user_connections = 72mysqlの中のプロセスの作成が再利用される。
thread_cache_size = 32普通のアプリのタイムアウト。バッチ処理の場合に伸ばす。SET wait_timeout=86400;SET GLOBAL と書くと変えられる場合は戻さないとずっとそのままです。
wait_timeout = 30SQL文の長さのMAX
net_buffer_length = 16K
myisam用の重要な値。msqyl専用のmyisam専用のサーバーの場合 5~9割
key_buffer_size = 128Mテーブルごとのfopenの保存する数。1024以上の場合制限解除(/etc/security/limits.conf). 1ユーザー1テーブルとかの場合、リリース後であれば祈る。
table_cache = 256たぶんmyisamのselect専用のキャッシュ
query_cache_size = 32M
index無しソート
sort_buffer_size = 8Mmyisam用?
myisam_sort_buffer_size = 8Mランダムリード
read_rnd_buffer_size = 4M連続リード
read_buffer_size = 4Mindex無しjoin
join_buffer_size = 2M
内部データ。エラーがログに出る。増やす。出る。増やす。
innodb_additional_mem_pool_size = 16M重要な値。msqyl専用のinnodb専用のサーバーの場合 5~9割
innodb_buffer_pool_size = 2048Mテーブルのファイルばらばら。管理の利点、サイズ増えすぎない。
innodb_file_per_table = truecommit時にディスク書き込み
innodb_flush_log_at_trx_commit = 1バッファリングの重複をoff
innodb_flush_method = O_DIRECTログのメモリ
innodb_log_buffer_size = 16Mログのファイル (/var/lib/mysql/ib_logfile0,1)バージョンによって変更後にリスタートでエラーor変化しない。変化させたい場合は消してからリスタート。
innodb_log_file_size = 64Mログのファイル数 (/var/lib/mysql/ib_logfile0,1)
innodb_log_files_in_group = 2
手順
http://dsas.blog.klab.org/archives/50860867.html
mymemcheck を鵜呑みにする。
http://linux.mini13i.gotdns.org/?MySQL%2F%BA%C7%C5%AC%B2%BD%2F%A5%B5%A1%BC%A5%D0%A5%D1%A5%E9%A5%E1%A5%BF
他にも沢山解説サイトがあるので読む。
http://dev.mysql.com/doc/refman/4.1/ja/innodb-start.html
そして上記などの公式サイトの説明を読む。
$ mysqladmin variables未設定時のデフォルト値がわからないので見る。
mysqlクラスターには関係ない。
0 件のコメント:
コメントを投稿