目次:
提供ツール †
4.1以上(含む5) への移行支援 †
ALTER char() シェルスクリプト †
- 4.0, 3.X から 4.1以上(5含む) に upgrade したときに、char() を ALTER しないといけない。それを自動でやってくれる shell スクリプト
- 4.1,5.x に上げたときに一度だけ実行できる。
- 実行にはalter権限が必要。スクリプトにユーザー名、パスワードを引数で与えて実行
- GNUツールで固めた環境下では問題なく動作。
体験Knoppix †
- NDBクラスター体験 Knoppix CD イメージ
http://www.mysql.gr.jp/knoppix/ndb/- CD を入れてマシンをブートすれば、NDBクラスターのできあがり。
- 1台の PC に 2 つの クラスターノード(ndbd)を起動しているので、仮想的に、クラスターの障害実験が簡単にできる。(稼働中に片方の ndbd 落とせば、障害発生と同等)
- 細かいところは、README を読んでください。
- 実メモリー512M以上必要。
- 起動したら、NDBクラスター、mysqld が立ち上がる。
- ndbd は 2つ起動する。mysqld は1つ。おかげで CPU パワーはじめとするリソースをけっこう食います。
- cdimg_20050121_1.iso
- 650MB。
- MySQL version 4.1.9
- developper summit 2005 でサンプル出していたイメージです。
- cdimg_20050216_1.iso
- 638M
- MySQL version 4.1.10 with MyNA jp patch
- Knoppix カスタマイズ TIPS
http://www.mysql.gr.jp/knoppix/customize-knoppix3.4
mysqlbench †
- pgbench を MySQL 用に移植したものです。
- mysqlbench はマルチスレッドで複数のクライアントを生成しています(pgbenchと違う点)。
- 使い方はpgbenchとだいたい同じ。いくつかオプションが違うぐらい。README 読んでください。
- ソースの検証のご協力をお願いします。
- 現在のところ、全てのスレッドの状態確認と同期を取るために、回りくどいことをしています。(要検証)
- そのため、接続を含むテスト結果(includeの表記がある結果)は大きなオーバーヘッドがかかっています。exclude の方で比較してください。
- Linux の場合、/lib/tls/ の、新しいスレッドの方ではうまく動かないことがあります(要対応)。そのため、リンクは前の LinuxThread の方を使用してください。
Super-Smack †
- 現在のメンテナー: http://vegan.net/tony/
- オリジナル: http://jeremy.zawodny.com/mysql/super-smack/ : MySQL Super Smack
- 複数のクライアントをマルチスレッドで生成できる。
- version 1.2 では、PostgreSQLサポート + gcc-3.x はコンパイルエラーになる。gcc-2.95 だと OK。(version 1.3 で修正済み)
MySQL の変数、オプションのバージョン間での違い †
MySQL の変数、オプションの一覧を、MySQL テーブルにして、mysqldump したものです。
mysql コマンドに食わせてください。
テーブル名 | 概要 |
param_vari | MySQL サーバー変数一覧 |
param_vari_show | MySQL サーバー変数一覧その2。 SHOW VARIABLES でしか現れてこない変数 |
param_opt | オプション一覧 |
param_showstatus | SHOW STATUS 一覧 |
param | 上記4つのテーブルの MERGE |
パッチ †
ver. 5.1 用パッチ †
ver. 5.0 用パッチ †
- --with-client-charset
- mysqldump 修正
- 自動変換抑制オプション(--skip-conversion)
- 全てのバイト列が char() に入るようにするパッチ
詳しくは、4.1 用のパッチの節を参照してください。同じです。
パッチを適用した後、ac が必要です
aclocal autoheader libtoolize --automake --force automake autoconf cd innobase aclocal autoheader libtoolize --automake --force automake autoconf
パッチをあてた MS-Windows 用バイナリ&ソース †
- cp932 を標準にしています
ver. 4.1 用パッチ †
パッチをあてた MS-Windows 用バイナリ&ソース †
- libmysql.dll をこのバイナリのやつに入れ替えるだけでも、文字破壊対策として、効果あるアプリがあるでしょう。
- c:\mysql をインストール先としてコンパイル。
- 4.1.21
- sjis(cp932) をサーバーとクライアントの default-character-set に
- mysqldump 修正
- cp932, eucjpms 追加
- --skip-conversion 追加
serverとclientを違う標準キャラクターセットに †
- コンパイル時に、server と client を違うキャラクターセットにコンパイルできるようにする
- configure --with-client-charset= と指定
- ./configure --with-client-charset=binary --with-charset=ujis の指定が可能
- ./configure --with-charset=ujis の場合は、クライアントの標準もujisになる。
- mysqldump がconfigure時のキャラクターセットを無視してutf8固定になるのを止めさせるようにもなる。(utf8固定ではなく、configureで指定したキャラクターセットを標準とするようになる)
パッチ当てた後、aclocal ; autoconf を実行のこと。(configure.in を変更するから)
mysqldump 時に、BLOB の内容を HEX で出力するパッチ †
このパッチは、4.1.8 に取り込まれました。4.1.8 以上ではパッチ当ては不要です。
- BLOB の内容が、0xABCDEF のように出力される。
- mysqldump --hex-blob --skip-opt でダンプ
上の hex-blob が MySQL のソースに取り込まれたとき、char() binary も hex 出力するように変わっていました。(MySQL-5.0.15では直っています)
また、0バイトの BLOB を出力すると、「0x」 だけになり、SQLの構文エラーになるバグも含まれてしまいました。(MySQL-5.0.15では直っています)
このパッチは、
- --hex-blob を指定すると BLOB のみを HEX で出力するように修正
- --hex-char とすると CHAR() BINARY を HEX 出力するように修正
- 0バイト時の構文エラーも修正
- --csv (same as --fields-terminated-by=',' --fields-optionally-enclosed-by='"' --lines-terminated-by='\r\n') 追加
余計なお世話な文字チェック機能をはずす(すべてのバイト列を CHAR() が受け付ける)パッチ †
4.1 は文字コードの範囲外のバイト列をchar()にINSERTできない仕様ですが、 このパッチをあてると、全てのバイト列が char() に入るようになります。
(4.0までは全てのバイト列がINSERTできる仕様です)
cp932, eucjpms パッチ †
これは上の -with-client-charset.patch、-ctype.patch を含みます。
cp932, eucjpms キャラクターセットの追加パッチ。5.0からのバックポート。
aclocal、 autoconf の作業が必要。
余計なお世話の自動変換を停止するオプションのパッチ †
- 脱文字破壊!
- mysqld --skip-conversion とすることで、自動変換機能を停止させます。
- まるで 4.0 までのような動きになります。
- メリットは、クライアントのキャラクターセットが何であれ(たとえlatin1であっても)、 クライアントから送られてきたバイト列は変換を通らず、そのままinsertします。
- デメリットは、今のぱっちだと SQL関数の、CONVERT() 関数が使えません。
- どなたか対応お願いします
sjis<->cp932, ujis<->eucjpms 変換をしないパッチ †
- cp932 と sjis の組み合わせの時、自動変換機能を止める
- eucjpms と ujis の組み合わせの時、自動変換機能を止める
SET NAMES 文を実行したらescape処理時のキャラクターセットも変更するパッチ †
- SET NAMES 文を実行したら、内部(mysql.charset : escapeするために使用される)キャラクターセットも指定したものに変更。
ver. 4.0 用パッチ †
SJIS + BLOB †
- 4.0 の BLOB 型が、sjis バイト列を余計にエスケープしないようにする
- バイナリファイルをただしく BLOB に入れれるはず。
mysqldump 時に、BLOB の内容を HEX で出力するパッチ †
4.0.23 でパッチが取り込まれました。4.0.23以上ではパッチは不要です
- BLOB の内容が、0xABCDEF のように出力される。
- mysqldump --hex-blob でダンプ
- Windows版バイナリ(based on mysql4.0.21)
上の hex-blob が MySQL のソースに取り込まれたとき、char() binary も hex 出力するように変わっていました。
また、0バイトの BLOB を出力すると、「0x」 だけになり、SQLの構文エラーになるバグも含まれてしまいました。
このパッチは、
- --hex-blob を指定すると BLOB のみを HEX で出力するように修正
- --hex-char とすると CHAR() BINARY を HEX 出力するように修正
- 0バイト時の構文エラーも修正
- --csv (same as --fields-terminated-by=',' --fields-optionally-enclosed-by='"' --lines-terminated-by='\r\n') 追加
PHP4 用 パッチ †
MySQL 4.1(5.0) への対応、その他。 †
このパッチを当てると、PHP4 の mysql.so は以下の機能を持ちます。
- php.ini ファイルに以下のキーワードが指定できます。
- mysql.set_names = キャラクターセット名
- mysql.load_group = my.cnfグループ名
- mysql.compress = 0か1
mysql.set_names = binary サーバーに接続したら、すぐに、「SET NAMES binary」 を実行する。 なにも指定していないときは、SET 文は実行しない。 指定できるキャラクターセット名は、MySQL の指定に従う。(ujis, sjis, binary, utf8, ...)
mysql.load_group = php my.cnf ファイルの中の [php] グループを読み込む。 なにも指定していないときは、なにも読み込まない。
mysql.compress = 1 通信を gzip 圧縮する。0 のときは圧縮しない。
- new function:
- string mysql_hex_string(string);
与えられた文字列を 16進数表示します。 ex. echo mysql_hex_string("あいうえお");
- string mysql_hex_string(string);
この関数は、MySQL 4.0.22 以上の 4.0 および、4.1.7 以上で使用できます。
添付ファイル: mysql-4.1.21-jp-win-src-2.zip 5379件 [詳細] mysql-4.1.21-jp-cp932-win32-2.zip 647件 [詳細] mysql-4.1.21-jp-win-src-2.patch 1652件 [詳細] mysql-5.0.33-jp-cp932-win32-2.zip 646件 [詳細] mysql-5.1.14-beta-jp-all.patch2 2521件 [詳細] mysql-5.0.33-jp-win-src-2.zip 720件 [詳細] mysql-5.0.33-jp-win-src-2.patch 2010件 [詳細] mysql-5.0.33-jp-all.patch2 2084件 [詳細] mysql-4.1.21-jp-all.patch2 3017件 [詳細] mysqlbench-0.1.tgz 715件 [詳細] php-5.0.4-mysql.c.patch 28961件 [詳細] mysql-4.1.10-jp-all.patch 1692件 [詳細] php-4.3.11-mysql.patch.zip 976件 [詳細] param.dump-200504.00 1655件 [詳細] mysql-4.1.10-skip_conversion.patch 1984件 [詳細] mysqlbench-0.0.tgz 4016件 [詳細] mysql-4.1.9-mysqldump-fix.patch 7105件 [詳細] mysql-4.0.23-mysqldump-fix.patch 11432件 [詳細] mysql-4.1.8-ctype.patch 1706件 [詳細] mysql-4.1.9-with-client-charset.patch 1602件 [詳細] php-4.3.9-mysql.patch.tgz 1203件 [詳細] mysql-4.0.21-mysqldump-hex-blob.patch 1640件 [詳細] mysqldump2-4.0.21.exe 6232件 [詳細] mysql-4.1.4-gamma-mysqldump-hex-blob.patch 1641件 [詳細] mysql-4.0.20-field_conv.cc.patch 1997件 [詳細] mysql_change_char_len.sh 405件 [詳細]
Last-modified: Sun, 21 Jan 2007 19:44:37 JST (6470d)