select table_schema, sum(data_length+index_length) /1024 /1024 as MB from information_schema.tables group by table_schema order by sum(data_length+index_length) desc;
「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
MYSQL の全データをコピーした場合
mysqldump -p --all-databases > dump_20150221.sql
mysql < dump_20150221.sql
こんな感じで全データを移行した場合、新しいサーバでMYSQLを再起動しないと権限関係が反映されない。
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サーバが立ち上がってないと当然不可。