人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

MYSQL 5.5 Windows XP版について質問です。

画像?
show variables like 'char%'; をやると、character_set_clientがutf8です。
そこでcp932に変更します。

画像??
set character_set_client = cp932とやり、変更されたことを確認しました。

画像?
mysqlを立ち上げ直し、show variables like 'char%'をやると、元のutf8に戻っています。

これをcp932のままにしておくにはどのようにすればよいでしょうか?

ちなみに、他のutf8の文字コードのものもsetでcp932に変更してみましたが、結果は画像???のような結果になってしまいます。

よろしくお願いいたします。

1323999189
●拡大する

●質問者: popattack
●カテゴリ:コンピュータ ウェブ制作
○ 状態 :終了
└ 回答数 : 4/4件

▽最新の回答へ

1 ● うぃんど
●25ポイント

set はセッション接続中のみ有効な一時的な設定変更

恒久的な変更は my.ini というファイルを編集
(WindowsXPなのでデフォルトでは C:\windows\my.ini )

変更(もしくは書き加える)のは下記のようなもの

[client]
default-char-set=cp932

popattackさんのコメント
ご回答ありがとうございます。setが一時的に有効なのは知りませんでした・・・ my.iniは最初から、下記の設定になっています。 [mysql] default-character-set=cp932 [mysqld] character-set-server=cp932 恒久的に、character_set_client、character_set_connection、character_set_resultsをcp932に変える方法はないでしょうか?

うぃんどさんのコメント
No.3でもご指摘受けているように [mysql]ではなく[client]です MySQLをDドライブにインストールしてあっても、 参照するのは C:\windows\my.ini であったりしますので、 無ければ追加するなどしてみてください

popattackさんのコメント
ご回答ありがとうございます。 [client] default-character-set=cp932 skip-character-set-client-handshake とやってみましたが、無理でした・・・mysql、windowsともに再起動もしています。

popattackさんのコメント
サービスのmysqlのプロパティを見ると、実行ファイルのパスで --defaults-file=D:/mysql/my.iniとありましたので、my.iniのパスは間違っていないと思います。試しに行くつかの行をコメントしたらmysqlを起動できませんでした。

2 ● kodairabase
●25ポイント
  1. my.ini に basedirとdatadirは記述されていますか?
  2. いったんサービスを削除してから、サービス登録し直してみてください。

詳しい手順は下記を参考にしてください。
http://d.hatena.ne.jp/kk_Ataka/20111011


popattackさんのコメント
ご回答ありがとうございます。 basedir="D:/mysql/"、 datadir="C:/Documents and Settings/All Users/Application Data/MySQL/MySQL Server 5.5/Data/" と、問題なく記述されています。

3 ● techmedia-think
●25ポイント ベストアンサー

↑の定義内容ではMySQLに接続するClientの定義内容ではないので、No.1さんが回答されているように[client]として定義する必要があるかと思います。

以下のサイトに参考になる設定情報が記載されています。
http://goungoun.dip.jp/app/fswiki/wiki.cgi/debianetch?page=2007%2F04%2F23-01%A1%A2skip-character-set-client-handshake+%A4%CB%A4%C4%A4%A4%A4%C6


popattackさんのコメント
ご回答ありがとうございます。my.iniに [client] default-char-set=cp932 と追記しました。mysqlを再スタートさせたり、コンピューターを再起動させたりして試していましたがshow variables like 'char%'をやると画像???と同じでutf8のままです・・・

techmedia-thinkさんのコメント
[client] default-character-set=cp932 と指定してもダメですか?

techmedia-thinkさんのコメント
それでもダメなら、あまりオススメしませんが、以下の設定で解決しませんか? [mysqld] default-character-set=cp932 skip-character-set-client-handshake

popattackさんのコメント
my.iniの設定ではutf8の表記はありません。全てcp932に変更しています。 教えて頂いた通りに、 [client] default-character-set=cp932 skip-character-set-client-handshake もやりましたが、以前下記の状態です。 character_set_client | utf8 character_set_connection | utf8 character_set_results | utf8 mysqlのインストール先は、D:\mysqlになります。 my.iniの中身は下記になります。 [client] default-character-set=cp932 port=3306 [mysql] default-character-set=cp932 [mysqld] port=3306 skip-character-set-client-handshake basedir="D:/mysql/" datadir="C:/Documents and Settings/All Users/Application Data/MySQL/MySQL Server 5.5/Data/" #default-character-set=cp932 character-set-server=cp932 default-storage-engine=INNODB #*** INNODB Specific options *** innodb_data_home_dir="D:/mysql/" ------- D:\mysql直下にmy.iniがあり、それ以外にもmy-huge.ini、my-large-.ini、my-innodb-heavy-4G.iniなどの設定ファイルと思われ式ものがありますが、どこにもutf8の表記はありません。 関係ないと思いますが、mysqlのファイルサイズは4Gくらいあります。

4 ● rouge_2008
●25ポイント

コマンドプロンプトの文字コードを変更した事がありませんか?
「chcp」コマンドを実行して、現在のコード番号を確認してみてください。
「Active code page: 65001」と表示された場合、utf-8に変更されています。
以下のコマンドを実行すると元に戻りますので、その後でmysqlにログインして確認してみてください。

chcp 932



http://itpro.nikkeibp.co.jp/article/Windows/20051025/223336/
http://fine.ap.teacup.com/hepo/23.html
http://www.adminweb.jp/command/display/index5.html
http://tounderlinedk.blogspot.com/2011/05/chcp-windowsbatcmd.html


rouge_2008さんのコメント
techmedia-thinkさんへの返信で、次のように返信されていますが、現在の設定はどうなっていますか? >> [client] default-character-set=cp932 skip-character-set-client-handshake もやりましたが、以前下記の状態です。 character_set_client | utf8 character_set_connection | utf8 character_set_results | utf8 << コマンドプロンプトの文字コードをcp932に戻さない(utf-8のまま)で使用する場合は、「skip-character-set-client-handshake」の設定が必要です。 「skip-character-set-client-handshake」は[mysqld]セクションに記述します。(※[client]セクションではありません。) >|| [client] port = 3306 socket = "?/mysql/mysql.sock" #文字コード設定は特に必要ありません。 [mysqld] port= 3306 skip-character-set-client-handshake character-set-server=cp932 [mysql] #文字コード設定は特に必要ありません。 ||< 上記で上手くいかない場合は、使用ツールとMySQLの詳細なバージョンを教えてください。(Windows標準のコマンドプロンプトですか?)

popattackさんのコメント
ご回答ありがとうございます。下記のサイトにmy.iniを置きました。よろしければご教授お願い致します。 http://firestorage.jp/download/5361811628fe7b1485ae96e9ed609e62b416d623 chcpをおこなうと、cp932になっています。 またskip-character-set-client-handshakeは[mysqld]に記述しています。 windowsのmysqlのサービスを見ると、 「"D:\mysql\bin\mysqld" --defaults-file="D:\mysql\my.ini" MySQL」 となっています。 よろしくお願いいたします。

popattackさんのコメント
mysqlのバージョンは5.5.16です。navicatというソフトウェアを使って文字コードを確認していましたが、なぜかコマンドプロンプトでmysqlに接続して、show variables like 'char%'でいままでutf8だった箇所が全てcp932になっていました・・・申し訳ございませんでした。無事に解決しました。皆様ご回答ありがとうございました。

rouge_2008さんのコメント
Navicatのコンソールを使用する場合も、次のように設定する事でcp932に統一する事ができました。 1.接続設定の「詳細」タブで、「MySQLのキャラクターセットを使用」のチェックを外します。 2.「エンコード」で「932(ANSI/OEM - Japanese Shift-JIS)」を選択します。 ※バージョンによって若干表示が異なる場合があります。(評価版10.0.8で確認済み) ※my.ini設定も必要です。

popattackさんのコメント
お礼遅くなりまして申しわけ有りませんでした。アドバイス通りにやりましたら問題なくcp932に変更されていました!!感謝です!ありがとうございます!
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ