【phpMyAdmin】バージョンアップしたら「Unknown system variable ‘lc_messages’」というエラーが出る

先日ステージング環境をPHP7にして、システムの動作は確認したのですが、
phpMyAdminを確認していなかったことに気づき、phpMyAdminにアクセスしました。

ん?

PHP7にするために古いPHPとモジュール群を一気に削除したとき、
phpMyAdminも削除してしまっていたのでした。

というかPHP7にしたので、おそらく古いphpMyAdminは対応していない可能性が高いので
phpMyAdminもPHP7に対応するバージョンをインストールすることにします。

PHP7.1用のリポジトリは先日

PHP5.3をいきなりPHP7.1にする

でインストール済みなので、

を実行するだけです。

さあ、さっそくphpMyAdminを確認すると、
ログイン後になんだか大量のエラーが!
上にスクロールして一番上のエラーを見ると

というメッセージが出ています。

今インストールしているMySQLには
lc_messagesという環境変数が見つからない、
つまりMySQLもバージョンアップしろってことですね。

こういう状況は昔からさんざん直面してきたので
なんとなく「こんなエラーが出たらこうしてみる」というパターンが
身についてきました。

現在のMySQLのバージョンは5.1でした。
MySQL5.6にバージョンアップします。

データベースが消えることはないですが、
念のため全データベースをダンプしておきましょう。

現在のMySQLを削除

リポジトリ追加

インストール

あらためてphpMyAdminにアクセスしてみると、、
エラーがなくなりました。

【Linux】手動でNTPサーバーにアクセスして時刻を合わせる

NTPサーバーが起動中なのに時間がずれている場合、
その原因はともかく、まずは手動で時刻を合わせます。

dateコマンドで日時を直接してもよいですが、

せっかくNTPサーバーを動かしているので
手動で外部のNTPサーバーにアクセスして時刻を合わせてみます。

上記の例はさくらインターネットのNTPサーバーです。

ちなみに、NTPサーバーが起動中なのに時間がずれていた原因ですが、
あるシステムで使用しているデータベースサーバーなのですが
セキュリティのためあえて外部と接続できないようにしていました。
にも関わらず外部のNTPサーバーを見に行く設定になっていました。

なので、そのサーバーが唯一、ローカルネットワークで接続している、
そのシステムのウェブサーバーの時刻を参照するようにしました。

手動設定

NTPの設定
/etc/ntp.conf

【Excel】UTF-8のCSVをExcelで開くには

UTF-8のCSVファイルをExcelで開くと、そのままだと文字化けしてしまいますが
「BOMつき」で保存することでExcelで開くことができるようになります。

BOMというのは、簡単に言うと
「これはUnicodeですよ」という意味のコードなのですが、
これを各行の先頭に入れることをBOMつきといいます。
BOMつきにすることでExcelもUTF-8のファイルであることが認識され、
文字化けせずに開けるようになります。

BOMつきにする簡単な方法は
Windowsのメモ帳で保存することです。
Windowsのメモ帳でUTF-8のファイルを保存すると自動的にBOMつきになります。
その他、テキストエディタなどのツールでもBOMつきで保存する機能があると思います。

ただし、BOMつきにしたCSVファイルを再びシステムに読み込ませたりする場合は注意が必要です。
BOMのせいでCSVファイルが正常にロードできなくなる危険があります。
ですので、システムに読み込ませる場合は、BOMつきのファイルは別ファイルとして保存しておいたほうがよいでしょう。

【Linux】viでペーストしたソースコードのインデントやコメントが崩れる

viには標準で自動インデントや自動コメント行の機能がありますが、
その弊害として、インデントやコメントを含むコードを
クリップボードからペーストしたときにもその機能が実行されて
コードが崩れてしまうことがあります。

私の場合はJavaScriptのコードで

によるコメントが含まれていると次の行もコメントになり、
ペーストしたコードが盛大に崩れてしまうことがよくありました。

しかし、さすがはvi。
.vimrcに以下のプログラムを書けばこの問題を回避できます。