Links †
MySQL Cluster †
管理コマンド †
▼ダンプする
mysqldump --all-databases > /home/dump/db.txt -u myuser --password=mypass --opt
その他操作方法等メモ †
▼ユーザー削除
mysql> SHOW PRIVILEGES;
mysql> REVOKE GRANT OPTION ON '[table_name]'.* FROM '[username]'@'[hostname]';
mysql> DROP USER '[username]'@'[hostname]';
▼新規DB作成
# mysqladmin -u [ユーザー名] create [DB name]
▼DB削除
# mysqladmin -u [ユーザー名] drop [DB name]
▼DB一覧
# mysqlshow
▼接続
# mysql -u [ユーザ名] -p[パスワード]
※ pと[パスワード]の間にはスペースは入らない
▼テーブル一覧
> show tables;
▼権限テーブル閲覧
> use mysql
> show tables;
▼フル権限を設定
> GRANT ALL ON *.* TO [ユーザー名]@'[ホスト名]';
▼特定ホストにアクセス許可を出す
grant delete,insert,references,select,update on [dbname].* to 'xxxx'@'xx.xx.xx.xx' identified by '';
▼テーブルのキー分布を分析
ANALYZE TABLE access_log;
▼インデックスに関する情報の取得
SHOW INDEX FROM access_log;
▼possible_keysカラムに記載されたキーの使用を強制する
FROM USE INDEX (key_list)
▼特定の順序に並び替えておく
ALTER TABLE access_log ORDER BY datetime DESC,id DESC
▼INSERT時の待ちを無くす
INSERT /*! DELAYED */
チューニング †
参考リンク †
mytop †
[OCT/05/2005]
▼インストール
# wget http://jeremy.zawodny.com/mysql/mytop/mytop-1.4.tar.gz
# tar zxvf mytop-1.4.tar.gz
# cd mytop-1.4
# perl Makefile.PL
# make
# make test
# make install
# wget http://search.cpan.org/CPAN/authors/id/T/TI/TIMB/DBI-1.48.tar.gz
# tar zxvf DBI-1.48.tar.gz
# cd DBI-1.48
# perl Makefile.PL
# make
# make install
# http://search.cpan.org/CPAN/authors/id/C/CA/CAPTTOFU/DBD-mysql-3.0002.tar.gz
# tar zxvf DBD-mysql-3.0002.tar.gz
# cd DBD-mysql-3.0002
# perl Makefile.PL
# make
# make install
サーバパラメータ †
[MAY/03/2005]
▼パラメータ設定状況の確認
# mysqladmin variables
▼設定
# cp /usr/pkg/share/examples/mysql/my-medium.cnf /var/mysql/my.cnf
# vi my.cnf
[client]
#password = your_password
port = 3306
socket = /tmp/mysql.sock
[mysqld]
port = 3306
socket = /tmp/mysql.sock
skip-locking
key_buffer = 8388600
max_allowed_packet = 1048576
net_buffer_length = 8192
read_buffer_size = 5120
sort_buffer_size = 1M
table_cache = 256
myisam_sort_buffer_size = 8M
record_buffer=1M
#log-bin
#server-id = 1
mysqlbench †
コネクションプール †
mod_dbi_pool †
SQLrelay †
[OCT/06/2005]
※パッケージから入れるとコンパイルエラーになるのでソースから入れた
▼インストール
# cd /usr/src
# wget http://jaist.dl.sourceforge.net/sourceforge/rudiments/rudiments-0.28.2.tar.gz
# tar zxvf rudiments-0.28.2.tar.gz
# cd rudiments-0.28.2
# ./configure
# gmake
# gmake install
# gmake clean
# cd ..
# wget http://jaist.dl.sourceforge.net/sourceforge/sqlrelay/sqlrelay-0.36.4.tar.gz
# tar zxvf sqlrelay-0.36.4.tar.gz
# cd sqlrelay-0.36.4
# ./configure --prefix=/usr/pkg
# gmake
# gmake install
# gmake clean
▼設定(MySQLの場合)
# cd /usr/pkg/etc
# cp sqlrelay.conf.example sqlrelay.conf
# vi sqlrelay.conf
<?xml version="1.0"?>
<!DOCTYPE instances SYSTEM "sqlrelay.dtd">
<instances>
<instance id="mysql_relay" port="9000" socket="/tmp/mysql_relay.socket"
dbase="mysql" connections="3" maxconnections="15" maxqueuelength="5" growby="1"
ttl="60" endofsession="commit" sessiontimeout="600" runasuser="nobody"
runasgroup="nobody" cursors="5" authtier="listener" handoff="pass" deniedips=""
allowedips="" debug="none">
<users>
<user user="sqlrelay" password="sqlrelay"/>
</users>
<connections>
<connection connectionid="db01" string="user=emuty;password=password;db=emuty;"
metric="1"/>
</connections>
</instance>
</instances>
▼起動
# sqlr-start -id mysql_relay
▼コンソールから接続
# sqlrsh -id mysql_relay
▼停止
# sqlr-stop
4.0系→4.1系移行 †
参考リンク †
注意点 †
[MAR/17/2005]
・CHAR(10) は 10 バイトから 10 文字に変わった。
・char() に、全てのバイト列が入らなくなった。例えば、ujis のフィールドには、
EUC-JP に定義されるコード空間のバイトしか INSERT できない。全てを入れるパッチ
は http://www.mysql.gr.jp/frame/modules/bwiki/?Contrib
・パスワードの保存形式が変わった。(長くなった)
・文字コードの自動変換機能が追加された。
・mysqldump の標準キャラクターセットがどうコンパイルしても utf8 になる
・データベース名、テーブル名は、OS 上では utf8 コードに直されて保存されるように
変わった(ディレクトリ名、ファイル名が、utf8のコードで書かれるようになったという
こと)。4.0 まではバイナリ列がそのままデータベース名(=ディレクトリ名)、
テーブル名(=ファイル名)になっていた。
・timestamp 型の表示フォーマットが変わった。4.0 までは 「20050116214504」 で
あったが、4.1 では 「2005-01-16 21:45:50」。アプリの作り方に注意。
・HEAP(MEMORY) テーブルのインデックスに、BTREE が加わった。4.0 までの HEAP
テーブルは HASH のみ。(i int, INDEX USING BTREE (i)) TYPE=MEMORY;
コマンド †
[MAR/17/2005]
▼自分の状態を知るためのSQL文
SHOW VARIABLES LIKE 'char%';