MariaDBで文字コードの設定

MariaDBとphpMyAdminのインストールが済んでサーバーでのLAMP環境が整えば、早速データベースの作成に移りたいところです。

MariaDBで文字コードを設定

しかし、後にクライアントのWindowsPCからアプリケーションを使い作成したデータベースへのアクセスを想定するならば先にMariaDBで文字コードを設定しておいたほうが良いでしょう。

文字コードを設定する理由

接続したPCのアプリケーションでデータベースに接続が成功すれば、当然レコードの編集が可能であるはずですが、スムーズに目的が達成するとは限りません。

クライアントPCからデータベースへ接続してデータを入力(編集)後にアプリケーションで次のエラーがでる場合があります。

Unknown column ' ?? ' in 'field list'

このエラーが出るのは文字コードが合っていないケースなのだそうです。

上のエラーはOpenOffice_Baseで確認したエラーでしたが、このようにクライアントでのデータベース活用まで進んだところでサーバー側の設定に後戻りするのも面倒なので先に済ませておくことにします。

文字コードの設定方法

文字コードの変更は基本的に「viエディタ」を使うのが便利ですが、慣れていない場合は他のエディタでも編集できる場合があります。

コマンドラインから次の通り入力します。

$ sudo vi /etc/my.cnf.d/server.cnf

文字コード設定用の記述を追加

エディタで[mysqld]の下に次の一行を追加。

character-set-server = utf8mb4

追加後のエディタのキャプチャー

追加記述が済んだら上書き保存してエディタを終了しMariaDBを再起動します。

$ sudo /etc/init.d/mysql restart

ブラウザからphpMyAdminにログインしてコンソールへ次の通り入力。

コンソールの起動アイコン

画面下のConsoleと書いてあるアイコンをクリックしてコマンドを入力します
show variables like "chara%";

入力後に「Ctrl+Enter」を押してMariaDBの文字コードを確認します。

phpMyAdminで文字コードを確認

ちなみに設定前は「database」と「server」のところがutf8mb4ではなく「latin1」になっています。

文字コードについて解説しているサイトでは多く「utf8」を指定して文字コードを設定していますが、アプリケーションでの応用を考えた場合「utf8mb4」のほうが柔軟性がありそうなので今回は「utf8mb4」を使っています。

さて、文字コードの設定が済めばサーバー環境につては、ほぼ作業が終了と考えて良いでしょう。

次は、いよいよデータベースの作成へと進みます。