MyISAM でトランザクションを実行
InnoDB ではなく MyISAM ストレージエンジンのテーブルに対して
BEGIN;
UPDATE~
INSERT~
UPDATE~
COMMIT;
としてもエラーは出ない。途中で、
ROLLBACK;
してもエラーは出ない。
コンソールでは
Query OK, 0 rows affected (0.00 sec)
InnoDB ではなく MyISAM ストレージエンジンのテーブルに対して
BEGIN;
UPDATE~
INSERT~
UPDATE~
COMMIT;
としてもエラーは出ない。途中で、
ROLLBACK;
してもエラーは出ない。
コンソールでは
Query OK, 0 rows affected (0.00 sec)
MySQL Server の起動に --skip-innodb オプションを指定。
/etc/init.d/mysql restart --skip-innodb
以降、InnoDB テーブルを作成すると
mysql> CREATE TABLE test( cd INT, pactive INT) ENGINE=InnoDB;
Query OK, 0 rows affected, 1 warning (0.01 sec)
Warning (Code 1266): Using storage engine MyISAM for table 'test'
という具合に、強制的に MyISAM テーブルとして作成される。
ちなみに、無効にする前に存在していた InnoDB テーブルは使用できなくなる。
MySQL Server 5.0.27-standard
Vine Linux 4.2 (Lynch Bages)
コンソール使用途中でワーニングを表示する
mysql> \W
how warnings enabled.
他に warnings; も
コンソール使用途中でワーニングを非表示する
mysql> \w
Show warnings disabled.
接続開始時にデフォルトでワーニングを表示するオプションは
mysql --show-warnings -u USER -p DATABASE
mysql Ver 14.12 Distrib 5.0.27, for pc-linux-gnu (i686) using readline 5.0
mysql Ver 14.14 Distrib 5.1.30, for Win32 (ia32)
×
mysql Ver 14.7 Distrib 4.1.20, for redhat-linux-gnu (i686) using readline 4.3
ロリポップ!レンタルサーバー
●サブドメイン
●アクセス解析
●CGI
●SSI
●PHP
●MySQL
●.htaccess
●商用利用運営可能
●ショッピングカート
●SNS
livedoor STARTプラン
●.htaccessの設定
●Anonymous FTP
●Awstatsアクセスログ解析
●Perl (5.8.8)
●PHP (5.1.6)
●Ruby (1.8.5)
●Python (2.4.3)
●Tomcat (5.5.20)
●Apache (2.2.3)
●MySQL (5.0.22)
●PostgreSQL (8.1.9)

トーマスオブアメリカ 1strentalserver
●SSH
●CRON
●jsp
●servlet
WADAX
MySQL の INNODB タイプテーブルを扱えるレンタルサーバーは意外と少ない。
●共用SSLが標準で利用可能です。(全携帯電話キャリアSSLモデル対応)
●セコムトラストシステムズ定期セキュリティ診断(脆弱性診断)
●セコム不正侵入検知予防サービス(IPS)
●ケータイサイト対応。サイトの可能性をさらに拡大。
●CGI/PHP/MySQL/PostgreSQL対応
●データ転送量は無制限
●便利なWebメール機能を搭載
●大規模DoS/DDoS攻撃も防御する最新セキュリティ
●高い信頼性のウイルスチェックを搭載
●高機能な迷惑メール(スパムメール)フィルタを搭載
完成例
| 項番 | 列名 | 属性名 | データ型 | 制約 | カラム説明 |
|---|---|---|---|---|---|
| 0 | cd | cd | int(10) | PRIMARY KEY AUTO_INCREMENT NOT NULL | |
| 1 | ID | id | varchar(128) | NOT NULL | UNIQUE INDEX |
| 2 | パスワード | pass | varchar(128) | NOT NULL | MD5 |
| 3 | クラス | class | int(1) | DEFAULT 0 | 1:A 2:B 2択 コードで格納 etc... |
| 4 | 更新日時 | xcreate | datetime | ||
| 5 | 作成日時 | xupdate | datetime |
STATUS;
DESC tableName;
DESC tableName fieldName;
テーブル クリエイト 命令もある
SHOW CREATE TABLE tableName;
MySQL Server version: 5.0.27-standard
Modelerと呼ばれる設定ツールでマッピングすると各テーブルを操作するための基底クラスのコードやXML設定ファイルを自動生成する。
http://www.atmarkit.co.jp/fjava/products/cayenne/cayenne_1.html
activeobjects よりは軽快に動作する。基底クラスのコードやXML設定ファイルのカスタマイズも比較的容易。
行を操作する場合は絞込みを工夫しないと大量のメモリを消費する(out of memoryで停止)。
いろいろ勉強になったところで、自分でコーディングしたほうが確実で早いと判断に。
全ての型やデータによる振る舞いをコーディングするのは、規則性が高くできればツールなどで自動的に正確なコードを生成させたい。
●Java標準のO/Rマッピング機能「Java Persistence API」
http://itpro.nikkeibp.co.jp/article/COLUMN/20060627/241918/?ST=develop&P=1
●Javaオブジェクトをデータベースへマッピング - Mr. Persister 3.0.1
http://journal.mycom.co.jp/news/2005/09/08/013.html
●Castorでデータバインディングに挑戦
http://www.atmarkit.co.jp/fxml/rensai2/xmltool03/01.html
●Hibernateで理解するO/Rマッピング★重量級
http://www.atmarkit.co.jp/fjava/rensai3/ormap01/ormap01.html
●DbUtils、Persist、Butterfly Persistence
http://d.hatena.ne.jp/Kishi/20081212/1229076102
●Cayenne★★★★
http://www.atmarkit.co.jp/fjava/products/cayenne/cayenne_1.html
●O/RマッピングをサポートするEclipseプラグイン「CROSSFIRE O/R」
http://codezine.jp/a/article/aid/339.aspx
●activeobjects★★
https://activeobjects.dev.java.net/
マイグレーションには、MySQL Migration Toolkit でいけることを確認済み。ただし、全く同じテーブル構造で、全自動でなくINSERTのSQL文を生成させテキストエディタで手修正することが前提。
Lua と呼ばれるスクリプトでマイグレーションを制御できるが、どこまで可能か・記述方法の調査は断念。
業務で稼動している既存システムを切り替える為 停止できる期間は制限付き、人の手作業によるミスのリスクがある。さらにスキーマの設計を見直すための移行フェーズを予定しているため
oracle(スキーマA)
↓MySQL Migration Toolkit
MySQL(スキーマA)
↓?
MySQL(スキーマX)
は保険としておき、一気に新しいスキーマへ変換する際の java バッチアプリを検討。
oracle(スキーマA)
↓java バッチアプリ
MySQL(スキーマX)
なぜか、Windows XP Professional で、MySQL Migration Toolkit の 最初のステップ java loader をパスしない。なお、XPの場合「Windows ファイアウォール」のブロック解除を促される。
Windows 2003 server では動作確認できている。
java の version は 1.6.0_11。
根本的な解決ではないものの MySQLMigrationTool.exe にはオプションがあり
cd "C:\Program Files\MySQL\MySQL Tools for 5.0"
MySQLMigrationTool.exe -debug
で最初のステップを進められる。
Oracle から MySQL へのデータ移行中のエラーその3
最後に残ったエラーメッセージ
Unknown column '0x' in 'field list'
insertスクリプト(Inserts.sql)を生成させて
mysql -u taro -p dbname < Inserts.sql
とすると
ERROR 1054 (42S22) at line 74: Unknown column '0x' in 'field list'
SQL 文を眺めると、『0x』という数字でもなく文字列でもないデータをBLOB列へ insert、バグ?。
移行元の BLOB 列の値がNULLのときの SQL 文が変。
エディタでinsertスクリプト(Inserts.sql)の『0x,』を『NULL,』に置換することで解決。
Oracle から MySQL へのデータ移行中のエラーその2
Incorrect string value: '\xE9\xA6\x99\xE6\xB8\xAF...' for column 'subject' at row 1
デフォルトのままだと、Migration Plan「Object Mapping」で Migration of type Oracle Schema「Parameter」が「Latin1」となっているのを「Multilanguage」に変更。
これで移行先のCREATE DATABASE文が
CHARACTER SET utf8 COLLATE utf8_general_ci;
となり、上記エラーは全て解消。
ちなみにWindows Server 2003 で
移行元は Oracle9i、インスタンス構築時のキャラクタベースは EUC
移行先は MySQL Server 5.1.30、インスタンス構築時のキャラクタベースは UTF8
●javaソース変更
Class.forName( "oracle.jdbc.driver.OracleDriver" );
↓
Class.forName( "com.p6spy.engine.spy.P6SpyDriver" );
●実行パスに spy.properties を配置。
realdriver=oracle.jdbc.driver.OracleDriver ←コメント外し
#realdriver=org.gjt.mm.mysql.Driver ←デフォルトをコメントアウト
●CLASSPATH に追加。
CP=$CP:./p6spy.jar
export CLASSPATH=.:${CP}
●p6spy.jar を指定した通りに配置して普通に実行。
http://www.p6spy.com/
ちょっと期待外れ
Oracle から MySQL へのデータ移行中、レポート内に大量の
Packet for query is too large (8056629 > 1048576). You can change this value on the server by setting the max_allowed_packet' variable.
移行元は Oracle のblob フィールドに最大10MBをバイナリを保持する仕様なので
C:\Program Files\MySQL\MySQL Server 5.1\my.ini
の末尾に
max_allowed_packet=10M
を追加。
Windows 上の Oracle9i データ を マック OS X の MySQL への移行調査。
『MySQLマイグレーションツールキット』が含まれる『MySQL GUI Tools』が存在する。
http://dev.mysql.com/downloads/gui-tools/5.0.html
MySQL GUI Tools =
+ MySQL Administrator 1.2
+ MySQL Query Browser 1.2
+ MySQL Migration Toolkit 1.1
都合のよいことに MAC OSX 10.4 (Universal binaries) 5.0-r12 12.4M がある。
ところが、12/3 現在のアーカイブ(mysql-gui-tools-5.0-r12-osx10.4-universal.dmg)には、MySQL Migration Toolkit が含まれていない。
Windows 上の MySQL へローカル移行すればよいだろうということで、Windows (x86) 5.0-r14 17.7M (mysql-gui-tools-5.0-r14-win32.msi) を採用。
Oracle9i(9.2.0.3) 導入時に入る java 1.3.1_01 でも起動している。
昔実施した、すっぴんのオラクル9iへパッチ(Oracle 9iPatch Set 9.2.0.3.0)を導入したときのの手順記録。
Windows server 2000, 2003 ともにOK。

DB2
SQLのマスターにいいですね。
データベースといえばオラクルが元気いいかもしれないけどDB2も現場は多い。
なんでも イチキュッパシリーズ価格破壊らしい。