最初に読んでね ダウンロード 検索 ユーザー登録する 連絡 マイストア ログイン  
このトピックはロックされているので記事編集または返信投稿はできません mysql 4.1.14, 5.0.19との使用による文字化け [解決] このエントリーを含むはてなブックマーク
mysql 4.1.14, 5.0.19との使用による文字化け
maverick
投稿初級者さん
投稿初級者さん

登録日: 2006.03.18
記事: 22
引用付きで返信する
mysql 4.1.14, 5.0.19は日本語の設定が難しいようで私はうまくEUC-JPバージョンのphpBBをうごかせません。日本語をポストすると例えば
コード:
Could not insert new word matches

DEBUG MODE

INSERT INTO phpbb_search_wordmatch (post_id, word_id, title_match) SELECT 8, word_id, 0 FROM phpbb_search_wordlist WHERE word_text IN ('テスト')

Line : 251
File : functions_search.php

のようなエラーが出てデータベースに入らないのです。どなたか解決法をご存知無いですか? 他のサイトを見ると4.1.xを使っている所もありますね。

私は4.0.xならいいんですけど…
ユーザーのプロフィールを表示maverick の記事をすべて検索プライベートメッセージを送信メールを送信
maverick
投稿初級者さん
投稿初級者さん

登録日: 2006.03.18
記事: 22
引用付きで返信する
私の結論として、日本語版のphpBBはmysql 4.1.x, 5.0.xにはまだ対応できていない、というものですが間違っていますか?私個人は4.0.xを当分使っています。特に何の問題もありませんから。(Gentoo Linuxでよかった Smile )

で、私としては誰かが4.1.x以降のmysqlに対応するphpBB日本語版を開発するのに期待しています。すみません、他力本願で。でもわたしはそこまでする意欲はありません。

今の心境としてはmysqlの新しいバージョンにはですがいずれどなたか(hiikunですか?)が解決してとなるのを期待しています。というかそうならなくては日本語ユーザーは困ると思います。

でもFedora core 5にはmysql-5.0.xがインストールされているんですね。これで日本語のphpBBをどうやって立てるのか疑問です。
ユーザーのプロフィールを表示maverick の記事をすべて検索プライベートメッセージを送信メールを送信
ocean
常連さん♪
常連さん♪

登録日: 2006.02.26
記事: 136
引用付きで返信する
ここを見るかぎり、確かに MySQL 4.1.x と MySQL 5.0以上 は日本語を扱う上で根本的な問題含んでいるようですね・・・

自分の local環境 Arrow WinXP MySQL4.1.12a-nt でも上記のエラーが確かにでました(というかなぜかずっと気づかなかった・・・orz)

さて、解決策ですが、まず私はキャラクターセットをujisにできる限り統一しました。
具体的には

  • my.ini において default-character-set=ujis
  • MySQL Server Instance Config Wizard を使ってできる限り ujis にカスタマイズ設定しなおした。
  • (これは関係ないかもしれないけど)phpMyadmin の config.inc.php において
    $cfg['DefaultLang'] = 'euc-jp';
    $cfg['DefaultCharset'] = 'euc-jp';
    $cfg['AllowAnywhereRecoding'] = FALSE;
    $cfg['RecodingEngine'] = 'auto';

そうすると、以下の状態になりました


そして肝心のphpBB2ファイル(こちらで配布してるEUC-JPです いつもお世話になってます)において
コード:
#
#-----[ OPEN ]------------------------------------------
#
db/mysql4.php
#
#-----[ FIND ]------------------------------------------
#
$this->db_connect_id = ($this->persistency) ? mysql_pconnect($this->server, $this->user, $this->password) : mysql_connect($this->server, $this->user, $this->password);
#
#-----[ AFTER, ADD ]------------------------------------------
#
mysql_query("SET CHARACTER SET ujis;", $this->db_connect_id);

をやってみました

そうすると一応上記のエラーはなくなり、ちゃんと新規投稿できました


phpMyadminからデータをバックアップするときは、
コード:

--
-- テーブルの構造 `phpbb_topics`
--
DROP TABLE IF EXISTS `phpbb_topics`;
CREATE TABLE `phpbb_topics` (
  `topic_id` mediumint(8) unsigned NOT NULL auto_increment,
  `forum_id` smallint(8) unsigned NOT NULL default '0',
  `topic_title` char(60) NOT NULL default '',
  `topic_poster` mediumint(8) NOT NULL default '0',
  `topic_time` int(11) NOT NULL default '0',
  `topic_views` mediumint(8) unsigned NOT NULL default '0',
  `topic_replies` mediumint(8) unsigned NOT NULL default '0',
  `topic_status` tinyint(3) NOT NULL default '0',
  `topic_vote` tinyint(1) NOT NULL default '0',
  `topic_type` tinyint(3) NOT NULL default '0',
  `topic_first_post_id` mediumint(8) unsigned NOT NULL default '0',
  `topic_last_post_id` mediumint(8) unsigned NOT NULL default '0',
  `topic_moved_id` mediumint(8) unsigned NOT NULL default '0',
  PRIMARY KEY  (`topic_id`),
  KEY `forum_id` (`forum_id`),
  KEY `topic_moved_id` (`topic_moved_id`),
  KEY `topic_status` (`topic_status`),
  KEY `topic_type` (`topic_type`)
) ENGINE=InnoDB DEFAULT CHARSET=ujis AUTO_INCREMENT=4 ;

のように
DEFAULT CHARSET=ujis
を追加しとけば文字化けしなかったです。

以上です。Linuxでうまくいくかどうかわかりませんが、参考になればと思います。
ユーザーのプロフィールを表示ocean の記事をすべて検索プライベートメッセージを送信投稿者のウェブサイトに移動
maverick
投稿初級者さん
投稿初級者さん

登録日: 2006.03.18
記事: 22
引用付きで返信する
ありがとうございました。
私の場合、新規投稿はこの変更だけでできました! 要はキャラクターコードをmysqlサーバに知らせておかないといけない、ということですね。そこまでは他のページを見て知ってはいたのですが私はphpBBのソースをまじまじと眺めたことがなかったのでこれをどうやるのか知りませんでした。私はエディタで編集しました。1行の追加で直るとは、素晴らしい。

mysqlサーバはujisに統一したくないのでいじらないようにしたいのです。というのはutf-8も使うので。

phpMyAdminのほうをどうするかはまた考えます。

ありがとうございました。

ocean の記述を引用:
...snip...
そして肝心のphpBB2ファイル(こちらで配布してるEUC-JPです いつもお世話になってます)において
コード:
#
#-----[ OPEN ]------------------------------------------
#
db/mysql4.php
#
#-----[ FIND ]------------------------------------------
#
$this->db_connect_id = ($this->persistency) ? mysql_pconnect($this->server, $this->user, $this->password) : mysql_connect($this->server, $this->user, $this->password);
#
#-----[ AFTER, ADD ]------------------------------------------
#
mysql_query("SET CHARACTER SET ujis;", $this->db_connect_id);

をやってみました

そうすると一応上記のエラーはなくなり、ちゃんと新規投稿できました
....snip....


EDIT: mysqlのサーバー側はなるだけいじらないと書きましたが考えてみたらデータベースを作る時にcollationをujis_japanese_ciにしました。phpMyAdminで見るとMySQL charsetはUTF-8のままです。my.cnf(Windowsではmy.ini?)を変更していないからだと思います。とにかくなるだけ最小限の変更に抑えて融通が利くようにしたいのです。
また、データのバックアップと復帰もphpBBのadministracion CPからすべて出来ます。本当にここのEUC-jpには感謝しています。
ユーザーのプロフィールを表示maverick の記事をすべて検索プライベートメッセージを送信メールを送信
maverick
投稿初級者さん
投稿初級者さん

登録日: 2006.03.18
記事: 22
引用付きで返信する
PS2: ちなみに私は実はphpBBと同時にb2evolutionも使いたかったのです。b2evolutionはutf8で日本語を使いますがやはりmysql 4.1.xに対応していませんでした。しかし同じような変更を3箇所(2ファイル)にして出来ました。本当にありがとうございました。

というわけで同じmysql 4.1.xサーバで違う日本語文字コードを使えます。my.cnf(my.ini)は変更しなくてもいいと思うのですが…
ユーザーのプロフィールを表示maverick の記事をすべて検索プライベートメッセージを送信メールを送信
ocean
常連さん♪
常連さん♪

登録日: 2006.02.26
記事: 136
引用付きで返信する
maverick の記述を引用:
my.cnf(my.ini)は変更しなくてもいいと思うのですが…

そうかもしれません。my.ini等の変更は一応やったって感じですから・・
ユーザーのプロフィールを表示ocean の記事をすべて検索プライベートメッセージを送信投稿者のウェブサイトに移動
maverick
投稿初級者さん
投稿初級者さん

登録日: 2006.03.18
記事: 22
引用付きで返信する
ocean の記述を引用:
maverick の記述を引用:
my.cnf(my.ini)は変更しなくてもいいと思うのですが…

そうかもしれません。my.ini等の変更は一応やったって感じですから・・

あれはデフォルトを設定するのに必要だということなんですね。昨日いろいろやって気づきました。
phpMyAdminはいじらないことにしました。それより、バックアップ、リストアはmysqldump,mysqlでやることにしました。phpMyAdminだとリストアに2mbの制限があるようですし、mysqldumpを使うとcronに設定することで定期的に自動的にバックアップがとれるので。コマンドラインがこれほど便利とは思いませんでした。

ujisとutf8を混在させられるのは便利です。とはいえ、これは4.0.xだと当り前のことだったんですが。できればoceanさんの変更をこの日本語EUC-JP用のphpBBに最初から入れて欲しいような…4.0.xでも別に害は無いと思うのですが。
ユーザーのプロフィールを表示maverick の記事をすべて検索プライベートメッセージを送信メールを送信
mysql 4.1.14, 5.0.19との使用による文字化け [解決]
新規投稿: 不可
返信投稿: 不可
記事編集: 不可
記事削除: 不可
投票参加: 不可
添付アップロード: 不可
添付ダウンロード: 不可
All times are GMT + 9 Hours (JST)  
Page 1 of 1  

  
  
 このトピックはロックされているので記事編集または返信投稿はできません    

Board Security

3145 Attacks blocked

Powered by phpBB © phpBB Group
Design by phpBBStyles.com | Styles Database.
Traduction par : PHPBB JAPAN / UTF-8 i18n Edition : JP Support Forum
Content © phpBB2 日本語サポートフォーラム
[ Debug on | page generation = 0.26442 seconds | sql queries = 17 ]
Feed RSS 2.0
JP Support Forum
SourceForge.jp