ser-0.8.14 + mysql-4.1.9

ser_mysql.shしようとすると、”Specified key was too long; max key length is 1000 bytes”となる。
はまっている人もいるようですが、解決策は見いだせず…
utf-8が1文字3バイトだから333文字しか入らないとかとは関係ないと思うが…
ujisだから500文字? ujisも3バイト文字あるから?
ujisやめるにはコンパイルしなおし?
うーーーむ、ser_mysql.shのqueryを分割すればいいのかな…

カテゴリーUN*X

“ser-0.8.14 + mysql-4.1.9” への6件の返信

  1. いっそのことmysqlを改造と思ったのだが、include/myisam.hのMI_MAX_KEY_LENGTH?
    それともsql/unireg.hのMAX_KEY_LENGTH? (本命?)
    でもその下に1024という値がたくさん埋め込まれていて、関連性不明のためそう簡単にはいじれなさそう…
    でも必要に応じて伸ばしてくれとも書いてあるし…うーむ。
    ファイルから入れたりもしたけどとりあえず失敗。

  2. そうかぁ、keyが長いんじゃファイルから食わしても同じか…
    subscriberをCREATE TABLEするところが長過ぎるらしい。
    1040バイト? 頑張れば詰まるか??

  3. MI_MAX_KEY_LENGTHを増やしているところを発見。下の1024あたりも増えていなさそうなのでこれを増やしてみることにしよう…

  4. …と思ったら結局1024バイトでつまりました。
    当初予定通りMI_MAX_KEY_LENGTHを2000に、MAX_KEY_LENGTHを2048に増やして対応。一応ser_mysql.shはそのまま通った!
    あとserが動くかどうかだな…

  5. mysql.soがmakeされない(cd modules/mysql; make; cp mysql.so /usr/local/lib/ser/modules/ で対応),
    /usr/local/mysql/lib/mysqlにLD_LIBRARY_PATHが通っていないなどありつつ/usr/local/sbin/ser 通った~!
    serctl addなども成功、あとはsubscriberがREGISTERできれば大丈夫ってことかな…
    …とここまで行ってつまってしまった。最近のWindows MessengerってSIP設定できないのでしょうか…

コメントは受け付けていません。