php+mysqlでの、mysqlのバックアップ方法について質問です。

mysqldump以外に便利でかつ、下記の条件をクリアできるもの(phpコード?)があれば教えてください。

現在、oscommerceを mysql5.0.45(utf)の環境で動作させてますが、
phpmyadminだとプログラムから入れた文字が化けてしまっています。

ちなみにoscommerce側でのカタログ画面、管理画面では文字化けはありません。

これはmysql5の問題だとか、いろいろ調べ、
my.confやら、phpmyadminのconfigも修正しましたが、
結局解決しませんでした。

通常使用時は管理画面からデータ修正できる為不便ではありませんが、
どうやらmysqldumpコマンドからのバックアップも文字化けしているようで、
バックアップの対策を検討しています。

これだという解決策がなければ、
oscommerce管理画面側では文字化けはないので、
バックアップするプログラムを直接書こうかと思っています。

回答の条件
  • 1人1回まで
  • 登録:
  • 終了:2008/07/11 14:15:02
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答2件)

id:b-wind No.1

回答回数3344ベストアンサー獲得回数440

ポイント35pt

これはmysql5の問題だとか、いろいろ調べ、

my.confやら、phpmyadminのconfigも修正しましたが、

結局解決しませんでした。

なにをどう調べて修正して、結局どうなったのかわからないので、あえて再度修正を試すことを提案します。

また、phpMyAdmin や mysqldump がまともに動かない環境では他の不具合が発生する可能性が

あるため原因までは特定しておくべきと思います。


MyNA Web Site

MySQL4.1 以降の文字化けの原因・対処法はほぼこちらのサイトにまとめられています。

さしあたって確認すべき事項としては、

- my.cnf で skip-character-set-client-handshake オプションを指定しているか

- mysqldump 使用時に default-character-set オプションを指定しているか

あたりでしょうか。


これでも解決しなければ、phpMyAdmin で以下のSQLを実行した結果を出してもらえれば解決に近づくかと思われます。

SHOW VARIABLES LIKE 'char%';
id:kou32rr

ありがとうございます。もう少しがんばってみようかなと思います。

>SHOW VARIABLES LIKE 'char%';

結果は

Variable_name Value

character_set_client utf8

character_set_connection utf8

character_set_database utf8

character_set_filesystem binary

character_set_results utf8

character_set_server latin1

character_set_system utf8

character_sets_dir /usr/share/mysql/charsets/

でした。

たしかに

character_set_server latin1

がなにかひっかかりますね。

ちなみにサーバは Redhat エンタープライズ5 + plesk8.3です。

my.cnfは、

http://tech.softagency.net/?PHP%2FphpMyAdmin

の通りしてみましたがうまくいかず、今は元に戻しています。

skip-character-set-client-handshake も試してみます。

2008/07/04 20:30:59
id:falcon2 No.2

回答回数331ベストアンサー獲得回数2

ポイント35pt

phpmyadminをutf8が使えるように改造しなければなりません。

id:kou32rr

utf8は使えると思いますが、どこを改造するか教えていただけるとありがたいです。

2008/07/07 18:53:25
  • id:b-wind
    全体を UTF-8 で作成しているのですね。
    >character_set_server latin1
    これは以下の設定を my.cnf に追加すれば変更になるかと。

    [mysqld]
    default-character-set = utf8

    あとついでに mysqldump の方も。
    [mysqldump]
    default-character-set = utf8


    ただ、注意して欲しいのはデータ投入時に latin1 等の非マルチバイトなキャラセットなままで
    使用しているとアプリケーション上は正しく表示されているように見えても、
    データベースには壊れたデータが格納されている可能性があることです。
    このばあい設定を修正するだけではダメで、データ自体を正しく修正してやる必要があります。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません