MySQLデータベースのエラーによりプロファイル更新に失敗する現象について(SiteTracker 8)
2009年04月07日
SiteTracker8 PremierおよびPremier Liteエディションで、MySQL4.1以降を使用されているお客様への注意点を下記に記載いたします。
【発生する事象】
プロファイル更新時に、下記MySQLのエラーが発生し、更新に失敗する場合がある。
Specified key was too long; max key length is xxx bytes (1071d)
【原因と回避方法】
MySQLのキャラクタコード変換機能のバグが原因となって、更新がエラーになるケースがあることが判明しております。
このキャラクタコード変換についてはMySQLのバグレポートとして公知されており、2009年3月現在のところ修正されておりません。
(参考URL:http://bugs.mysql.com/bug.php?id=4541 "Specified key was too long; max key length is 1000 bytes" with utf8)
MySQL4.1以降のシステムキャラクタコードは常にUTF8に固定されているため、インデックスとなるデータがマルチバイトコード文字で、一定以上に文字数が多くなった場合に限り、上記の不具合が影響いたします。
MySQL側のバグ修正のプライオリティはS4(機能要求)として低く設定されており、修正される目処はMySQL6.xであるという予定がアナウンスされております。
また、SiteTrackerの開発元では、SiteTrackerの不具合ではないためパッチの配布は実施しない方針であるとの見解があります。
弊社といたしましては、できる限り個別にサポートはいたしますがSiteTrackerの不具合では無いため、完全な対応(回避)は申し訳ございませんが保障いたしかねますことをご了承ください。
なお、今後対応、回避方法が判明した際には、公式サイトなどで順次ご案内いたします。
エンタープライズ(有償サポート付で販売されているMySQL)版での対応につきましては、各販売会社、サポート会社様に直接お問い合わせくださいますようお願いいたします。
なお、上記現象はMySQL固有の現象であり、弊社検証環境のOracle、SQLserverでは発生しておりません。
以上