データベースとテーブルを作成
前回、WindowsにMySQLをインストールする方法を記事にしました。
インストーラを使用しないでWindowsにMySQLをインストールする方法
MySQLがインストールできたので、さっそくのデータベースを作成、続いてテーブルも作成します。
show create tableコマンドを実行して、テーブルが想定通りに作成されたかを確認します。
show create table XXXXXXXX
※XXXXXXXXはテーブル名
すると、項目はちゃんとできていたのですが、最後に気になる記述を見つけました。
DEFAULT CHARASET=latin1
デフォルトの文字コードがUFT-8になっていない!?
これだとデータを入れたときにLATIN-1という文字コードで保存されてしまいそうですね。
当然、UFT-8で保持したいので、DEFAULT CHARASETを変更する方法を検索してみました。
MySQL設定ファイルを作成
意外と情報がなかったのですが、以下の2サイトが参考になりました。
参考にしたサイト
mysqlで文字コードをutf8にセットする
MySQLでcharacter_set_databaseがlatin1になってしまう問題の対応方法
内容を簡潔に書くと次のとおりです。
・my.iniという設定ファイルを作成し、DEFAULT CHARASETの情報を書いてあげる
・my.iniをmysqlフォルダの直下に格納する
さっそくmy.iniを作って、MySQLのフォルダ(僕の場合は、C:\mysql)に置いてみました。
なお、設定ファイルの内容は以下を参考にしました。
オプションファイルの設置場所
↑my.ini
[mysqld] character-set-server=utf8 [client] default-character-set=utf8
↑mysqlフォルダの直下に置きます。
設定ファイルを置いたら、MySQLのサービスをいったん停止して、再度起動しなおします。
そして、以下のコマンドでDEFAULT CHARASETの情報を参照します。
show variables like "chara%";
すると、概ねutf8になりましたが1箇所だけLATIN-1のままのところがありました。
どうやらデータベースのデフォルトの設定がLATIN-1のままになっているようです。
character_set_database | latin1
よく考えると、最初にサーバのDEFAULT CHARASETがLATIN-1の状態でデータベースを作成していますので、そのままデフォルトの文字コードがLATIN-1になっているということですね。
つまり、今の設定ファイルがある状態でもう一度データベースを作り直せばおそらくUTF-8になるはずです。
データベースを再作成して確認
幸いまだデータが空っぽなので、単純にいったんデータベースをDROPしてから再度CREATEします。
データベースを作り直した上で、再度するとshow variables like “chara%”を実行します。
すると、無事UTF-8になっていました。
character_set_database | utf8
ここでようやく再度テーブルを作成します。
show create tableで確認したところ、こちらも無事にUTF-8になっていました。
DEFAULT CHARASET=utf8
この記事へのコメントはありません。