MYSQL」カテゴリーアーカイブ

MYSQLメモリ量調整まとめ

# MySAMのキーをキャッシュするバッファのサイズ。目安はシステムメモリの1/4

key_buffer_size = 1GB

#少なめに

join_buffer_size = 256K

# クライアントからサーバーに送信できるパケットの最大長。

max_allowed_packet = 32M

# 全件検索時のレコードがキャッシュされるバッファのサイズです。

read_buffer_size = 1M

# キーを使用したソートで読み込まれた行がキャッシュされるバッファのサイズ。

read_rnd_buffer_size = 8M

# ソート時に使用されるバッファのサイズ。

sort_buffer_size = 16M

#ここで設定された値より大きな結果はキャッシュしないようにします。

query_cache_limit = 64M

#クエリキャッシュで使用するメモリサイズ。

query_cache_size = 1G

# MEMORYテーブルの最大サイズを指定する。

max_heap_table_size = 64M

# スレッド毎に作成される一時的なテーブルの最大サイズ。

tmp_table_size = 64M

MYSQLDUMPいろいろ

ちゃんとダンプするためには以下のオプションを付ける。

-R ストアドプロシージャを含む
-E イベントスケジューラも含む
–hex-blob  blob型のデータも含む
–default-character-set=binary バイナリコードで出力

結局、全部をdump、復元するには

mysqldump -u root -p –default-character-set=binary –hex-blob -E -R データベース名 > ダンプ先ファイル
にしないといけないらしい。

MYSQL文字化け対応

FreeBSD のMYSQL 4.1からCentOSのMYSQL 5.1へ移設。EUC-JPのテーブルが見事に文字化け。

binaryでダンプ・リストアしても上手くいかず。

結論から言うと、

1.バイナリでダンプ

mkdir DB_NAME
chmod 777 DB_NAME
mysqldump -a –default-character-set=binary DB_NANAME –tab=./DB_NAME

2.できあがったsqlの中で、「ENGINE=MyISAM DEFAULT CHARSET=latin1」を「ENGINE=MyISAM DEFAULT CHARSET=ujis」に変更

3.binaryでインポート

mysql
create database DB_NAME;
quit
mysql DB_NAME < DB_NAME/XX.sql

mysqlimport -L DB_NAME DB_NAME/XX.txt DB_NAME/XX.txt…

で上手くいった。

 

MYSQLのデータベース作成とアクセスユーザの追加

作成権限を持っていることを前提として

# mysql
> create database データベース名;
> grant all privileges on データベース名.* to `データベースユーザー名`@`localhost` identified by 'パスワード';
> flush plivileges;
> quit
#

mysqlコマンドを立ち上げ、「create databaseでデータベースを作成」「grant文でアクセスユーザーを作成(別にroot権限でアクセスするときは必要ないと思われるが、普通に危ないと思われ)」「flush文で反映(mysqlサーバ自体を再起動する場合は必要ない)」のプロセスで作成。
mysqlコマンドを立ち上げるときに固有のユーザーで立ち上げたり、パスワードが設定されている場合は-pだの-uだののオプションを使う。
MYSQLサーバが立ち上がってないと当然不可。