MySQLの文字コードがUTF8になっていなかったので死ぬほど悩んだ話

投稿日:2018-09-12

結論から言うと、タイトルの通りMySQLのインストール後にいろいろ作業してたんだけど、文字コードがUTF 8になってなかったので、原因の究明と解消にすげぇ時間がかかった。

顛末

年に何回もない作業なんだけど、展示会とかお客さんへの試用機として、自社のソフトをセットすることがあります。

その時に、今現在所属しているプロジェクトではオラクルを使っているんだけど、それ以外の製品だとOracle以外のDBを使うこともあるんです…

とは言え、インストールの手順書等は整備されているので、基本的には手順書どおりに作業進めていけばソフトのセットアップは終わる…はずなんです。

それが終わらなかった。

必要なソフトがインストールできない件

まず、ウェブ版のインストーラーを使ってのインストール手順が用意されているので、手順通りにそれを進めていく。

すると、一つ目の問題が。

手順書どおりにやっているにもかかわらず、MySQLのインストール対象になるソフトのリストが手順書どおりにならない。

これは、MySQLをアンインストールしてインストールを繰り返しても事態は好転せず。

なので、仕方なくオフライン版のインストーラーを使用することで解決。

原因と言えるかどうかわからないけど、ウェブ版のインストーラーでは、必要なソフトのダウンロードがうまくできなかった?みたい。

なので、その時の状況が許すのであれば、他のソフトについてもオフライン版のインストーラーを使った方がやはり確実だなと。

文字コードがUTF-8にならない件

これはすごい悩んだ。

実際に手順を踏んで操作してみれば、別にたいした作業してないんだけど、MySQLを触ったことがほとんどない自分からすると、そもそもの原因にたどり着くのがすごく困難だった(笑)

原因は、タイトルの通り文字コードはUTF 8になっていなかったこと。

それに気づくのに遅れていしまった理由は、今回使用したソフトウェアのインストールに失敗するところで、ログらしいものが何も無かったこと。

だって、せめてエラーログが出るとかエラーコードのダイアログでも出ていればそこを頼りに原因を探すこともできるけど、今回の場合、作成に失敗しましたとメッセージが出るだけで、原因究明に必要なものが何もなかった…

データベースの中身を見ても、とりあえずテーブル等は作成されているし、1部のデータが文字化けをしている状態だった。

まぁ、文字化けをしている時点で既に正しくはないんだけど、そこを確認すると言うチェック項目がないので今回は完全にスルーしていた。

その後は画面を使った動作確認に入るんだけど、一部必要なデータがインポートしきれていなかったりして、操作に失敗する。

そこで初めて、正しく作業ができていなかったと判明するわけで…

MySQLの文字コードの変更方法

MySQLのインストール時にデフォルト設定として文字コードが意図した通り(今回の場合はUTF-8)でインストールされるとは限らないので、インストールが終わった段階で必ず文字コードをチェックするようにしたい。

文字コードの確認方法

コマンドプロンプトで以下を入力


mysql -u root -p

パスワードを聞かれるのでもういいですくれるのインストール時に設定したパスワードを入力。

ログインしたらいいかを入力して文字コードの一覧を確認する。


show variables like '%char%';

ここで、latin1 とかcp392とか表示されていたら、その項目についてはutf8ではないので設定を変更する。

今回の場合、character_set_serverがlatin1がutf8である必要があった。

設定は以下のファイルを対象にする。

C:¥ProgramData¥MySQL¥MySQL Server 5.7¥my.ini

作業する前に、必ずファイルのバックアップを取っておく事。

インストールする場所によっては末尾の数字が違ったり、そもそもインストールするフォルダを別のところに設定したりしていればそこを参照すること。

あとは、以下を追記もしくは、修正する。



default-character-set=utf8

character-set-server=utf8

この2行を追加したら、コントロールパネル→管理ツール→サービスを開き、MySQLのサービスを再起動する。

コマンドからやってもいいけど、使う頻度が少なくてうろ覚えで結局調べるぐらいなら、サービスの再起動って覚えた方が良い。

再起動が終わったら、先の手順でMySQLにログインし直して、文字コードを表示し、utf8 になってる事を確認する。

サービスの再起動に失敗するとか、文字コードがutf8 になってない場合は、記述が間違ってるので、一旦バックアップに戻してから1行ずつやり直す。

まとめ

ここまで、慣れてしまえば時間はたいしてかからないので、インストールが終わった段階で確認するようにしたい。

社内のマニュアルとかだとインストール時のデフォルト設定で何も問題が起きないとそのままになってて、たまに今回みたいなイレギュラーな事態が発生すると誰も当てに出来ない事になったりするので要注意。

今回は、割と回数こなしてる人に聞いても、「俺がやってる時にそんなエラー出た事ねぇよ?」とか言われて、マジか(ㅇㅁㅇ;;)ってなったからね。

デフォルト設定で作業進めるようなマニュアルの場合は、ホント気をつけるべき。







-PC
-

関連記事

メモリ増設のついでに、CPUのグリス塗り直したけど、埃がヤバかった。

メモリの追加をするタイミングで、CPUのグリスを塗り直しました。 今のメインPCは5年位前のCorei5のデスクトップ。 メモリは8GB。 もう一台は、Phenom X6 のデスクトップ。 同じく、メ …

iphoneを初期化!その時必要なパスワードとは?

入学式シーズンですね。 新しく高校に入るということで、スマホデビューした学生さんも多いんじゃないかなと。 最近は、スマホで完結する事が多いので、PCを持たずに生活している人も多いって聞いたり。 なので …

新型MacbookPro 2016(Late 2016)を買うかどうか非常に迷っている話。

どうしても、定期的に上がってしまうこの話題というか、欲しいから検討するんだけど、あと一歩が踏み出せない・・・ 日本の中心付近で仕様変更と闘うSE日記MacBookAir 11 Early2014 では …

勝手に文字が入力される場合の対処法

つい先日、何も入力していないのに、勝手に文字が入力されるという現象に遭遇しました。 原因はキーボードが押されっぱなしになっていたこと ただ、今の仕様環境ゆえか、事態の把握と解決に時間を要したので、こん …

「TeamViewerが商用環境で使用されているようです。」と表示され、使えなくなった時の対処法。

突然表示された「商用使用の疑い」 いきなりでした。 ちょうど、先週ぐらいにTeamViewerのセッションが突然切れるということが発生。 その時は、気にせず再接続しようとしたら、商用使用の疑いとのこと …


カテゴリー