この記事について
| 環境 | さくら共有サーバー、Poderosa、mysql |
|---|---|
| 目的 | poderosaでmysqlサーバーにログイン後、日本語を含むクエリを実行する |
| 結果 | .cshrcにsetenv LANG ja_JP.UTF-8を追記し、poderosaのエンコーディングをeuc-jpにして解決 |
つまずきポイント要約
- クエリをpoderosaにコピペすると日本語だけきれいに消える
- LANG設定後はIllegal mix of collationsエラー。サーバー側がujis(EUC-JP)なのでエンコーディングをeuc-jpへ
事象
ターミナル(poderosa)でさくらのmysqlサーバーにログイン後、日本語入力できなかったので、対処法のおぼえ書き。
実行したいmysqlクエリ
UPDATE table1 SET flag = 1 where column LIKE '%日本語%'
poderosaのエンコーディング設定
utf-8(cjk)
クエリをpoderosaにコピペすると日本語だけきれいに無くなる。
つまりこうなる。
UPDATE table1 SET flag = 1 where column LIKE '%%'
対処
対処法を調べてみると、「.cshrc」に次の追記をすればいいらしいと判明。
#poderosaで日本語を扱うために追記
setenv LANG ja_JP.UTF-8
参考サイトはこちら
poderosaでmysqlサーバーに再ログイン。
すると新たなるエラー。
エラー内容
ERROR 1267 (HY000): Illegal mix of collations (utf8_general_ci,IMPLICIT) and (ujis_japanese_ci,COERCIBLE) for operation 'like'
※「ujis」は、日本語EUC(EUC-JP)のこと。
文字コードが違うようなので、poderosaのエンコーディングを変更
utf-8(cjk) → euc-jp
無事にエラーも出ずに日本語も使えるようになった。
