- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- ソース を表示
- Contrib へ行く。
- 1 (2004-11-02 22:47:48 (火))
- 2 (2004-11-03 08:56:35 (水))
- 3 (2004-11-28 01:42:46 (日))
- 4 (2004-11-28 03:16:06 (日))
- 5 (2004-12-15 11:44:58 (水))
- 6 (2004-12-20 12:02:24 (月))
- 7 (2004-12-20 12:11:00 (月))
- 8 (2005-01-16 22:49:45 (日))
- 9 (2005-01-17 10:44:04 (月))
- 10 (2005-01-18 00:06:29 (火))
- 11 (2005-01-19 19:11:51 (水))
- 12 (2005-01-19 20:21:50 (水))
- 13 (2005-01-25 12:30:57 (火))
- 14 (2005-02-03 23:48:45 (木))
- 15 (2005-02-03 23:56:19 (木))
- 16 (2005-02-05 15:07:31 (土))
- 17 (2005-02-16 12:04:15 (水))
- 18 (2005-02-16 15:58:27 (水))
- 19 (2005-02-22 10:31:34 (火))
- 20 (2005-02-23 19:35:33 (水))
- 21 (2005-02-23 23:12:48 (水))
- 22 (2005-04-01 06:24:09 (金))
- 23 (2005-04-01 06:52:30 (金))
- 24 (2005-04-03 22:16:02 (日))
- 25 (2005-04-04 13:40:09 (月))
- 26 (2005-04-22 02:52:20 (金))
- 27 (2005-04-22 12:41:51 (金))
- 28 (2005-04-22 14:47:57 (金))
- 29 (2005-05-31 22:25:14 (火))
- 30 (2005-06-01 13:40:08 (水))
- 31 (2005-06-01 22:46:11 (水))
- 32 (2005-06-06 21:35:46 (月))
- 33 (2005-06-07 17:39:22 (火))
- 34 (2005-06-09 22:03:35 (木))
- 35 (2005-06-15 21:17:46 (水))
- 36 (2005-06-16 11:31:01 (木))
- 37 (2005-06-16 11:34:12 (木))
- 38 (2005-08-26 13:19:16 (金))
- 39 (2005-08-27 03:15:47 (土))
- 40 (2005-08-27 12:13:11 (土))
- 41 (2005-08-29 09:43:24 (月))
- 42 (2005-09-03 10:05:23 (土))
- 43 (2005-09-27 13:27:40 (火))
- 44 (2005-09-29 13:08:10 (木))
- 45 (2005-10-25 09:41:56 (火))
- 46 (2005-10-26 11:37:31 (水))
- 47 (2005-10-28 01:31:05 (金))
- 48 (2005-11-23 01:10:29 (水))
- 49 (2005-12-06 12:00:54 (火))
- 50 (2005-12-16 06:27:01 (金))
- 51 (2005-12-16 11:49:28 (金))
- 52 (2006-01-05 05:17:56 (木))
- 53 (2006-03-13 20:55:33 (月))
- 54 (2006-03-14 21:01:35 (火))
- 55 (2006-04-02 13:41:56 (日))
- 56 (2006-04-02 19:58:28 (日))
- 57 (2006-04-14 06:25:08 (金))
- 58 (2006-04-29 19:31:56 (土))
- 59 (2006-05-06 13:32:08 (土))
- 60 (2006-06-03 10:46:10 (土))
- 61 (2006-06-05 11:46:58 (月))
- 62 (2006-08-01 08:48:41 (火))
- 63 (2006-08-09 17:01:25 (水))
- 64 (2006-09-05 17:59:17 (火))
- 65 (2006-10-11 11:32:04 (水))
- 66 (2006-10-30 08:35:14 (月))
- 67 (2006-11-06 13:53:34 (月))
- 68 (2007-01-15 18:26:02 (月))
- 69 (2007-01-16 07:10:30 (火))
- 70 (2007-01-21 12:39:10 (日))
目次:
提供ツール †
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 (Oracle対応作業中) †
#ref(): File not found: "super-smack-1.2-0.0.tgz" at page "Contrib"
- by MyNA & MCEA DB研究会
- Oracle 対応中のソース ( src/ora-client.cc )。
- autoconf してから configure してください。(INSTALL ファイル参照。)
- 今のソースでは、通常のテストは可能。データのファイルへの書き出しとか読み込みが未対応
aclocal autoheader automake autoconf ./configure --with-oracle --with-oracle-home=$ORACLE_HOME \ --with-pgsql --with-pgsql-lib=/usr/local/pgsql/lib --with-pgsql-include=/usr/local/pgsql/include \ --with-mysql --with-mysql-lib=/usr/local/mysql/lib/mysql/ --with-mysql-include=/usr/local/mysql/include/mysql
- オリジナル: http://jeremy.zawodny.com/mysql/super-smack/ : MySQL Super Smack
- 複数のクライアントをマルチスレッドで生成してテストできる。
- PostgreSQLもテストできるということらしいが、gcc-3.x だとコンパイルエラーになる。だれか直して。(gcc-2.95 だと OK)
- Oracle の部分の追加、修正、検証大歓迎
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.0 用パッチ †
#ref(): File not found: "mysql-5.0.3-jp-all.patch" at page "Contrib"
#ref(): File not found: "mysql-5.0.4-jp-all.patch" at page "Contrib"
- --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 用バイナリ&ソース †
#ref(): File not found: "mysql-5.0.4-beta-jp-win-src.zip" at page "Contrib"
#ref(): File not found: "mysql-5.0.4-beta-jp-win32-cp932-bin.zip" at page "Contrib"
- cp932 を標準にしています
ver. 4.1 用パッチ †
パッチをあてた MS-Windows 用バイナリ †
- libmysql.dll をこのバイナリのやつに入れ替えるだけでも、文字破壊対策として、効果あるアプリがあるでしょう。
- c:\mysql をインストール先としてコンパイル。
- 4.1.10
#ref(): File not found: "mysql-4.1.10-jp-win-src.zip" at page "Contrib"
#ref(): File not found: "mysql-4.1.10-jp-sjis-win-bin.zip" at page "Contrib"
- sjis をサーバーとクライアントの default-character-set に
- mysqldump 修正
- cp932, eucjpms 追加
- --skip-conversion 追加
serverとclientを違う標準キャラクタセットに †
#ref(): File not found: "mysql-4.1.3-with-client-charset.patch" at page "Contrib"
#ref(): File not found: "mysql-4.1.7-with-client-charset.patch" at page "Contrib"
#ref(): File not found: "mysql-4.1.8-with-client-charset.patch" at page "Contrib"
#ref(): File not found: "mysql-4.1.11-jp-all.patch" at page "Contrib"
#ref(): File not found: "mysql-4.1.12-jp-all.patch" at page "Contrib"
- コンパイル時に、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 でダンプ
#ref(): File not found: "mysql-4.1.11-jp-all.patch" at page "Contrib"
#ref(): File not found: "mysql-4.1.12-jp-all.patch" at page "Contrib"
上の hex-blob が MySQL のソースに取り込まれたとき、char() binary も hex 出力するように変わっていました。
また、0バイトの BLOB を出力すると、「0x」 だけになり、SQLの構文エラーになるバグも含まれてしまいました。
このパッチは、
- --hex-blob を指定すると BLOB のみを HEX で出力するように修正
- --hex-char とすると CHAR() BINARY を HEX 出力するように修正
- 0バイト時の構文エラーも修正
- --single-transaction --master-data は REPEATABLE READ じゃないと意味がないので、TRANSACTION ISOLATION LEVEL の指定を付け足した。
- --csv (same as --fields-terminated-by=',' --fields-optionally-enclosed-by='"' --lines-terminated-by='\r\n') 追加
余計なお世話な文字チェック機能をはずす(すべてのバイト列を CHAR() が受け付ける)パッチ †
#ref(): File not found: "mysql-4.1.7-ctype-sjis.patch" at page "Contrib"
#ref(): File not found: "mysql-4.1.7-ctype-ujis.patch.1" at page "Contrib"
4.1.8用は4.1.9にもあたります。
#ref(): File not found: "mysql-4.1.11-jp-all.patch" at page "Contrib"
#ref(): File not found: "mysql-4.1.12-jp-all.patch" at page "Contrib"
4.1 は文字コードの範囲外のバイト列をchar()にINSERTできない仕様ですが、 このパッチをあてると、全てのバイト列が char() に入るようになります。
(4.0までは全てのバイト列がINSERTできる仕様です)
cp932, eucjpms パッチ †
#ref(): File not found: "mysql-4.1.9-jp-all.patch" at page "Contrib"
#ref(): File not found: "mysql-4.1.11-jp-all.patch" at page "Contrib"
#ref(): File not found: "mysql-4.1.12-jp-all.patch" at page "Contrib"
これは上の -with-client-charset.patch、-ctype.patch を含みます。
cp932, eucjpms キャラクターセットの追加パッチ。5.0からのバックポート。
aclocal、 autoconf の作業が必要。
余計なお世話の自動変換を停止するオプションのパッチ †
#ref(): File not found: "mysql-4.1.11-jp-all.patch" at page "Contrib"
#ref(): File not found: "mysql-4.1.12-jp-all.patch" at page "Contrib"
- 脱文字破壊!
- mysqld --skip-conversion とすることで、自動変換機能を停止させます。
- まるで 4.0 までのような動きになります。
- メリットは、クライアントのキャラクターセットが何であれ(たとえlatin1であっても)、 クライアントから送られてきたバイト列は変換を通らず、そのままinsertします。
- デメリットは、今のぱっちだと SQL関数の、CONVERT() 関数が使えません。
- どなたか対応お願いします
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 以上で使用できます。