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%';