MariaDBとphpMyAdminのインストールが済んでサーバーでのLAMP環境が整えば、早速データベースの作成に移りたいところです。
しかし、後にクライアントの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のコマンドが入力可能になります。
ここに入力するコマンドはLinuxOSで一般に使われるものとは異なるものですが、初心者はあまり意識しないほうが良いかもしれません。
show variables like "chara%";
入力後に「Ctrl+Enter」を押してMariaDBの文字コードを確認します。
設定前は「database」と「server」のところがutf8mb4ではなく「latin1」になっています。
文字コードについて解説しているサイトでは多く「utf8」を指定して文字コードを設定していますが、アプリケーションでの応用を考えた場合「utf8mb4」のほうが柔軟性がありそうなので今回は「utf8mb4」を使っています。
さて、文字コードの設定が済めばサーバー環境につては、ほぼ作業が終了と考えて良いでしょう。
次は、いよいよデータベースの作成へと進みます。
おすすめ記事
データベースのインポート・エクスポート(バックアップ)のポイント【phpMyAdminを使ってMySQL、MariaDB】