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

コマンドの通りviエディタを使って編集できれば便利ですが、初心者にはハードルが高いためGUI付属のエディタを使用しましたが特に不具合はありませんでした。

Linuxの場合はWindowsのメモ帳と違いUTF-8で編集できる場合が多いようです。
ですが、たまたま大丈夫だったというだけで出来るだけviエディタを使用したほうが良いでしょう。

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

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

character-set-server = utf8mb4

編集するファイルの場所や名前は環境により異なるようです。
以前にMySQLで設定したときは「/etc/mycnf」が設定ファイルでした。

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

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

$ sudo /etc/init.d/mysql restart

※CentOS7の場合、再起動には「systemctl」を使います。

再起動が済んだらブラウザからphpMyAdminにログインし文字コードの設定を確認してみます。

phpMyAdminの下のほうにあるアイコンをクリックするとMariaDBのコマンドが入力可能になります。

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

画面下のConsoleと書いてあるアイコンをクリックすると入力領域がし現れます

ここに入力するコマンドはLinuxOSで一般に使われるものとは異なるものですが、初心者はあまり意識しないほうが良いかもしれません。

show variables like "chara%";

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

phpMyAdminで文字コードを確認

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

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

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

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