はじめての自宅サーバ構築 - Fedora/CentOS -
Last Update 2018/01/16
[ 更新履歴 ] [ サイト マップ ] [ 質問掲示板 ] [ 雑談掲示板 ] [ リンク ]
トップ >> 当サイト情報 >> スレッド

このページは表示専用です。新規投稿・レスや最新情報はこちらです。

 文字コード変換についてlatin から EUC
日時: 2006/11/26 17:42
名前: house
参照: http://www.shiawase-home.com/

?不明点・障害内容:
?ログの有無   :
  (有:その内容):
?Distribution  :fc5 mysql5
      Version:
?Service Name  :
      Version:
?ネットワーク構成:

お世話になります。
以前から文字コードでは苦労しておりますが、
最近原因がわかったような気がします。

元々は有料のサーバーにてXOOPSを構築し、
それをエクスポート・・インポートにて
現在の環境に至っています。

どういう訳か、最初に契約していたレンタルサーバーでは
MYSQLのデータがlatinで作成されており、
現在もXOOPSデータはlatinのままです。

MTのデータは、文字コード変換ツールがあるので、
これを使用することでEUCに変更出来るのですが、
XOOPSのデータ(MYSQL)のデータをどのように変換したら良いものか悩んでいます。

ちなみにデータベースの数は300近くあります。

データベースの場所は/var/lib/mysql の中に
目的とするデータベースがあります。
(例えば/var/lib/mysql/xoops)

何かアドバイスを頂ければ幸いです。
よろしくお願い申し上げます。

■ コンテンツ関連情報

 Re: 文字コード変換についてlatin から EUC ( No.1 )
日時: 2006/11/26 18:30
名前: house
参照: http://www.shiawase-home.com/

追記させて頂きます。
今までの文字コード悪夢は以下のようになっています。

1.レンタルサーバーでmysql作成・・・latin
2.自宅サーバーへmysql移行・・・うまくいかない
3.レンタルサーバーからバックアップしたmysqlデータ(***.sql)をテキストエディタで開き、
   EUCに変換後、
   自宅サーバーでインポート
  ・・・文字化けしまくり
4.レンタルサーバーからバックアップしたデータに
   何の手も加えず自宅サーバーに移行(MYSQLはバージョン4)
  ・・・うまくいった。文字化けしない
   ・・・しかし魔の手が・・・文字コードはlatinのままだった。
5.ディストリはCENTOS4からFEDORA5へ変更。
   いつの日にかMySQLはバージョン4からバージョン5へ
6.MYSQL時限爆弾が動作開始。
   MYSQLがバージョン5になったことで
   latinをEUCに変換表示しようとしているのか、
   少しづつ文字化けが発生。
   特に「〜」等の記号などで文字化け爆弾動作。
   たまに訳のわからないところで、多少の文字化け爆弾動作。
7.MYSQLの文字コードはEUCに設定しているが、
   自動変換(OUTPUT)等をNONEにするも、
   時限爆弾は動作中。というより微爆継続中。

という流れがあります。
そこで、XOOPSの文字コードを一切合切
 latinからEUCに変換しよう・・・と至ったわけです。

私のように文字コード爆弾にはまっている人っているんでしょうかね?
 Re: 文字コード変換についてlatin から EUC ( No.2 )
日時: 2006/11/26 19:36
名前: たう

phpmyadmin上でエクスポートする際に、「EUC エンコーディングへ変換する」
という所がありますが試されたでしょうか
 Re: 文字コード変換についてlatin から EUC ( No.3 )
日時: 2006/11/26 20:05
名前: house
参照: http://www.shiawase-home.com/

なぜかPHPMyADMINで
エクスポートをしようとすると、
エラーになってしまうんです。

データベースの中の
データ1つ1つを選択すると
エクスポート出来るのですが、
例えば
/var/lib/mysql/xoops/
のデータ全体を選択すると
エラーになります。

データの容量の制限とかがどこかにあるのかもしれません。

エクスポートできる範囲でエクスポートして
テキストエディタで合体させる、
という方法になるのでしょうか?
 Re: 文字コード変換についてlatin から EUC ( No.4 )
日時: 2006/11/26 20:35
名前: house
参照: http://www.shiawase-home.com/

途中経過
いろいろ調べて試してみました。(結果失敗)

データのエクスポート
mysqldump -u hogehoge -p xoops > xoops.mysql

mysqlデータベースのバックアップ
mv /var/lib/mysql/xoops /var/lib/mysql/xoops.orign

エクスポートしたデータをeucJPに変換
lv -Oej xoops.mysql > xoops.mysql.euc

mysqlにログイン
mysql -u hogehoge -p

データベースxoopsの空ファイルを作成
mysql >create database xoops;
mysql >exit

データベースxoops空ファイルにリストア
mysql -u root -p xoops < xoops.mysql.euc

どうだぁ・・・と途中で文字化けが原因と思われるエラー
(4百何十行目だからの何だかの文字がおかしい・・・らしい)

なかなかうまくいかないですねぇ。
もしかしたら、元のファイル自身に文字化けが発生しているのかもしれないですね。

 Re: 文字コード変換についてlatin から EUC ( No.5 )
日時: 2006/11/26 22:34
名前: taka

phpMyAdminでエクスポートできるバックアップデータの最大サイズはデフォルトで2MBになっています。
これはphpMyAdminの制限ではなく、PHPの初期設定での制限です。
これを変更するには、 "/etc/php.ini" を開き、 "upload_max_filesize" ディレクティブ を修正します。

# vi /etc/php.ini

;;;;;;;;;;;;;;;;
; File Uploads ;
;;;;;;;;;;;;;;;;

; Whether to allow HTTP file uploads.
file_uploads = On

; Temporary directory for HTTP uploaded files (will use system default if not
; specified).
;upload_tmp_dir =

; Maximum allowed size for uploaded files.
upload_max_filesize = 2M

upload_max_filesize = 30M ← データベースの容量にあわせて変更(例30M)
 Re: 文字コード変換についてlatin から EUC ( No.6 )
日時: 2006/11/27 13:05
名前: 管理者

houseさん。お久しぶりです。

見当違いの事を書いているかも知れませんので、先にお詫び致します。

テーブル毎となってしまいますが以下の様にCSV形式に一度エクスポート(基データデータバックアップも兼ねて・・(笑))してみては如何でしょうか?
(テーブル数が多かった場合、手間が掛かってしまいますけど・・・)
出力されたCSVファイルをEUCに変換(文字化け等もこの場で修正)して新たにテーブルにインポートするイメージです。

【エクスポート】
mysql> select * from TABLENAME into outfile "/OUTPUT.CSV" fields terminated by ',';

【インポート】
mysql> load data local infile "/INPUT.CSV" into table TABLENAME fields terminated by ',';

※)上記の大文字部分は任意値に変更

■ その他

ページ先頭へ


Copyright(©)2004-2018 First home server construction. All Right Reserved.