MSQL illegalエラーについて

このQ&Aのポイント
  • MYSQLでクエリを実行した際に表示されるエラーメッセージについて説明します。
  • キャラクターセットが原因でエラーが発生している可能性があります。
  • エラーを解消するためにはキャラクターセットを修正する必要があります。
回答を見る
  • ベストアンサー

MSQL illegalエラーについて

こんにちは。MYSQLでクエリを実行したところ、下記のようなエラーメッセージが表示されました。 テーブルはcp932で設定してあります。 mysql> show variables like '%char%'; +--------------------------+--------------------------+ | Variable_name | Value | +--------------------------+--------------------------+ | character_set_client | cp932 | | character_set_connection | cp932 | | character_set_database | cp932 | | character_set_filesystem | binary | | character_set_results | cp932 | | character_set_server | cp932 | | character_set_system | utf8 | | character_sets_dir | D:\mysql\share\charsets\ | +--------------------------+--------------------------+ キャラクターセットも全てcp932にしていますが、下記のエラーはどこを修正した方がよいと思われるでしょうか?よろしくお願いいたします。 [Err] 1267 - Illegal mix of collations (cp932_japanese_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation '='

  • MySQL
  • 回答数1
  • ありがとう数2

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

はじめまして。 mysqlフォルダのmy.iniの中にある[mysqld](73行目辺り)の中に init-connect='SET NAMES cp932' と追記すれば良いのでは? すでにinit-connect='SET NAMES ~'とあるのなら書き換えですね。 それでエラーが続くのなら init-connect='SET NAMES utf8'も試してみてください。 参考サイト http://blog.s21g.com/articles/154 直ればいいのですが。

mellow91
質問者

お礼

ありがとうございます!さっそく試してみます!!感謝です!

関連するQ&A

  • MySQLの文字化け

    MySQLにPHPでデータを入力しています。 utf8でデータを送信しています。 どうも MySQLの設定がうまくできてないようです。 どこを どうやって変えたらよいのでしょうか? mysql> show variables like 'char%'; +----------------------+-----------------------+ | Variable_name        | Value             | +----------------------+-----------------------+ | character_set_client    | cp932             | | character_set_connection  | cp932             | | character_set_database   | latin1             | | character_set_filesystem  | binary             | | character_set_results  | cp932             | | character_set_server   | latin1             | | character_set_system   | utf8              | | character_sets_dir     | C:\xampp\mysql\share\charsets\ | +----------------------+-----------------------+

    • ベストアンサー
    • PHP
  • 文字コード変更

    mysql> mysql> show variables like 'character_set%'; +--------------------------+----------------------------+ | Variable_name | Value | +--------------------------+----------------------------+ | character_set_client | sjis | | character_set_connection | sjis | | character_set_database | sjis | | character_set_filesystem | binary | | character_set_results | sjis | | character_set_server | sjis | | character_set_system | utf8 | | character_sets_dir | /usr/share/mysql/charsets/ | +--------------------------+----------------------------+ 8 rows in set (0.00 sec) mysql> mysql> character_set_systemもsjisに変更したいと考えております。 どのようにすれば可能でしょうか? やりたいことはmysqlworkbenchでselect文のクエリ内容を日本語表記することです。 ご存知の方、宜しくお願いします。

    • ベストアンサー
    • MySQL
  • MySQLのCharacter_set

    PHPとSQLで投稿サイトを作成中の初心者です。 いままでsjisで統一してきたものを、character_setをutf8に変換したく、 MySQL\MySQL Server 5.0\my.ini ファイルの default-character-set=sjis となっていたところをすべて default-character-set=utf8 に変え、 show variables like 'character_set%'; で確認しましたが、下記の状態となり、いくつかutf8 にかわってくれません。 +--------------------------+---------------------------------------------------------+ | Variable_name | Value | +--------------------------+---------------------------------------------------------+ | character_set_client | utf8 | | character_set_connection | utf8 | | character_set_database | sjis | | character_set_filesystem | binary | | character_set_results | utf8 | | character_set_server | sjis | | character_set_system | utf8 | | character_sets_dir | C:\Program Files\MySQL\MySQL Server 5.0\share\charsets\ | +--------------------------+---------------------------------------------------------+ 残りのdatabase, filesystem, serverもutf8にしたいと思い。 my.iniファイルが他の場所にあるのかいろいろさがしていますが、まだ見つけられません。 どこを調べて、どこを変えればよいのか、お分かりの方いましたらご教授ください。 また、もしかすると全てutf8にしなくても良いのかも知れませんが、いろいろ調べていると皆さん統一されて いるようにお見受けしたので恐らく統一すべきなんだろう、と解釈しています。 MySQL Command Line Clientで 設定ファイルを読みにいく順番と場所を示してくれるコマンドとかないでしょうか? 稚拙な質問で恐縮ですが、どなたかご指南よろしくお願いいたします。

    • ベストアンサー
    • MySQL
  • 突然の文字化けで困っています (UTF-8→???)

    下記の文字列が意味不明な文字コードに変換されてDBに格納されてしまい困っています。調べたところSJIS,EUCではありませんでした。 山田 太郎(UTF-8) ↓ 山田 太郎 pear::db パラメータでcharsetにutf8を設定しています。 mysql> 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 | utf8 | | character_set_system | utf8 | | character_sets_dir | C:\Program Files\xampp\mysql\share\charsets\ | +--------------------------+----------------------------------------------+ 何か同じような現象を体験された方がいましたらご教授ください。 足りない情報があれば補足欄へ再度投稿します。

    • ベストアンサー
    • MySQL
  • phpMyAdimnとコマンドラインでのSQL結果

    phpMyAdimnとコマンドラインで現在の文字コードを取得すると結果がことなる。 文字コードを調べる為に「show variables like 'char%';」を phpMyAdminLとコマンドラインで上で流したのですが結果がことなります。 phpMyAdmin character_set_client utf8 character_set_connection sjis character_set_database latin1 character_set_filesystem binary character_set_results utf8 character_set_server sjis character_set_system utf8 character_sets_dir /usr/share/mysql/charsets/ コマンドライン character_set_client | sjis | character_set_connection | sjis | character_set_database | sjis | character_set_filesystem | binary | character_set_results | sjis | character_set_server | sjis | character_set_system | utf8 | character_sets_dir | /usr/share/mysql/charsets/ my.cnfで下記の設定を行っております。 [mysqld] character-set-server = sjis collation-server = ujis_japanese_ci skip-character-set-client-handshake [mysql] default-character-set=sjis [client] default-character-set=sjis 日本語文字も正しく登録、更新できphpMyAdminでも正しく表示されていると思うのですが phpMyAdminで結果が異なるのが気になり質問させていただきました。 phpMyAdminでの結果は無視しても問題ないのでしょうか。 環境 CentOs 5.7 Mysql 5.5.17 phpMyAdimn 3.4.7 php 5.3

    • ベストアンサー
    • MySQL
  • お助けください。。。

    現在、mysql+phpを使ったwebシステムの開発を行っているのですが、日本語の文字化けに 苦戦しています。 mysqlのコマンドでselect * from テーブル名 と打ったところ、insertコマンドで投入した要素名で 日本語で入力したものが、?????で表示されてしまいます。 しかし、create tableコマンドでField名を日本語で入力したのですが、こちらは正しく表示されて います。 my.iniの内容を変更したりしていますが、状況に変化がありません。 どうすれば、直りますか? 以下に、show valiablesの結果を記載します。 +--------------------------+------------- | Variable_name | Value | +--------------------------+--------------- | character_set_client | cp932 | | character_set_connection | cp932 | | character_set_database | utf8 | | character_set_filesystem | binary | | character_set_results | cp932 | | character_set_server | utf8 | | character_set_system | utf8 | | character_sets_dir | C:\xampp\mysql\share\charsets\ | +--------------------------+-----------------

    • ベストアンサー
    • MySQL
  • mysqlコマンドだけ文字化け

    WinXPでxampp1.6.6aを使っています。 文字コードはutf8で設定したく説明しているサイトを探しmy.cnfを 下記のように修正および追加しました。 [client] default-character-set = utf8 [mysqld] skip-character-set-client-handshake default-character-set = utf8 character-set-server = utf8 collation-server = utf8_general_ci init-connect = SET NAMES utf8 [mysqldump] default-character-set = utf8 [mysql] default-character-set = utf8 phpadminから確認すると日本語も文字化けせずに表示されるのですが なぜかコマンドから確認すると日本語が文字化けしてしまいます。 おなじような質問がありなんとかできるものかと思い確認したのですが 特に設定が間違っているようではなく解決策がみつかりません・・・ 文字化けせずに表示させるためにはどうすればいのでしょうか? 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 | utf8 | | character_set_system | utf8 | | character_sets_dir | C:\Program Files\xampp\mysql\share\charsets\ | +--------------------------+----------------------------------------------+

    • ベストアンサー
    • PHP
  • phpMyadminと文字コード

    PHPとMySQLのインストールをxampp(ver1.6.7)を使って行いました。文字コードはEUC-JPを使いたいので、資料を片手にmy.iniにdefault-character-set=ujisとskip-character-set-client-handshakeを追加しました。 コマンドプロンプトからMySQL Monitorを使ってshow variables like 'char%';と打ってみると、次のように表示されます。 +--------------------------+--------------------------------+ | Variable_name | Value | +--------------------------+--------------------------------+ | character_set_client | ujis | | character_set_connection | ujis | | character_set_database | ujis | | character_set_filesystem | binary | | character_set_results | ujis | | character_set_server | ujis | | character_set_system | utf8 | | character_sets_dir | c:\xampp\mysql\share\charsets\ | +--------------------------+--------------------------------+ と、ここまではいいのですが、phpMyadminのトップの画面には相変わらず「MySQL の文字セット: UTF-8 Unicode (utf8) 」と表示されるます。これは無視してもかまわないのでしょうか。phpMyadminを使って入れたデータをPHPで表示するとちゃんと表示されます。

    • ベストアンサー
    • MySQL
  • perlのDBIよりMysqlにアクセスすると

    perlのDBIよりMysqlにアクセスすると DBD::mysql::db do failed: Data too long for column...のエラーが発生します。 つまり長すぎるデータを格納しようとしてエラーが出ているようです。 格納するデータの文字コードはutf-8です。 カラムは試しにvarchar(255)にしていますので、おそらく文字コードが原因ではないかと推測しています。 phpMyAdminから SHOW VARIABLES;コマンドを実行したところ 文字コード関係は以下の設定です。 character_set_client utf8 character_set_connection utf8 character_set_database utf8 character_set_filesystem binary character_set_results utf8 character_set_server sjis character_set_system utf8 character_sets_dir C:\Program Files\MySQL\MySQL Server 5.0\share\char... collation_connection utf8_general_ci collation_database utf8_general_ci collation_server sjis_japanese_ci 開発環境は MySQL - 5.0.24-community-nt phpMyAdmin - 2.8.2.2 MySQL クライアントバージョン: 4.1.7 OS;WIN_XP Active Perl 5.8.8 です。 お気付きの点がございましたらご指摘宜しくお願いいたします。

    • ベストアンサー
    • MySQL
  • CSVをMYSQLにインポートすると文字化けする

    XAMPPでmysqlを使ってます。 CSVをインポートするとUTF-8が文字化けしてしまいます。詳しくわかる方いましたらお知恵をお貸しください。 まず、mysqlの設定ですが 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 | utf8 | | character_set_system | utf8 | | character_sets_dir | C:\xampp\mysql\share\charsets\ | +--------------------------+--------------------------------+ 8 rows in set (0.05 sec) となっています。 次に、アップロードするCSVですが、 1回目は、terapadを愛用しているので、terapadの機能でUTF-8に変換して保存したのですが、インポートすると文字化けしてしまいました。 次は、エクスプローラーでUTF-8に変換したファイルを読み込むと文字化けしており、エクスプローラーのエンコードで文字コードをUTF-8に変換し保存したものを、CSVに変換してインポートしたのですが、やっぱり文字化けしてしまいました。 私の知識ではこれ以上手がないのでなにかあたらしい突破口や間違いがあれば教えてください。

    • ベストアンサー
    • MySQL