MySQLでカラム名を変更しようとしたらERROR 1067 (42000): Invalid default value for ‘column_name’メッセージが出力された

MySQLでカラム名を変更しようとしたらERROR 1067 (42000): Invalid default value for ‘column_name’メッセージが出力された。

原因
エラーの出力されたカラムはDATETIME型でデフォルト値が0000-00-00 00:00:00になっていた。
MySQLのsql_modeにNO_ZERO_IN_DATE、NO_ZERO_DATEが含まれていたためエラーとなっていた。

show variables like 'sql_mode' ;
+---------------+-------------------------------------------------------------------------------------------------------------------------------------------+
| Variable_name | Value                                                                                                                                     |
+---------------+-------------------------------------------------------------------------------------------------------------------------------------------+
| sql_mode      | ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION |
+---------------+-------------------------------------------------------------------------------------------------------------------------------------------+

対処内容
/etc/my.cnfの中にNO_ZERO_IN_DATE、NO_ZERO_DATEを除いてsql_modeの追加をする。

[mysqld]
sql-mode=ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

/etc/my.cnfを追加したあとにMySQLを再起動する。

systemctl restart mysqld.service

環境
CentOS 7
MySQL 5.7.22

CentOSでheadとtailを用いて特定の行を表示する

設定ファイルの特定の行だけ表示したいときがある。
たとえば15行目のみを表示したいとき。

# 上から1~15行目を表示する。
head -15 file_name

# 下から1行目を表示する。
tail -1 file_name

# 組み合わせると上から15行目表示してから
# 下から1行目を表示する。
head -15 file_name | tail -1

Vimのコメントの色がみにくいので変えたい

最近Vimを使っていてコメントの色がみにくいので変えたいと考えていた。
全部解決していないけれど調べたことをメモとして残しておく。

vimコマンドでファイルを開いたらEscキーを押下して以下のコマンドを実行するとコメントの色が緑色になる。
:highlight Comment ctermfg=green

でも、これだと毎回入力しないといけないので常に指定した色でファイルを開くようにしたい。
調べた結果がホームディレクトリ直下に.vimrcを作成して中に上記をコマンドを書いてやればよい。
vim ~/.vimrc

.vimrcを作成してからコメントを含むファイルを開くと一瞬緑色になるけれどすぐに暗い青色に戻ってしまった。
とりあえず、コマンドからは変更できるのでいったんここまでにしておく。

環境
CentOS 7
Vim 7.4
ユーザ root

CentOS7のタイムゾーンがおかしかったので直した

CentOS7のインストールしたときからタイムゾーンがおかしかったけど特に問題がなかったのでそのまま使っていた。
cronを設定するようになったので設定がわかりにくいため直した。

# 現在のTime zoneを確認する。
timedatectl status
# 使用可能なTime zoneを調べる。
# たくさん出てくるので、Asiaでgrepして、moreで少しずつ表示させる。
timedatectl list-timezones | grep Asia | more
# Asia/Tokyoで設定する。
timedatectl set-timezone Asia/Tokyo

CentOS7で起動時から有線ネットワークをオンにする設定

CentOS7は初期設定では有線ネットワークがオフになっていた。
毎回手動で直すのは手間だったので起動時にオンにする設定を入れた。

vim /etc/sysconfig/network-scripts/ifcfg-nameでファイルを開いて
ONBOOT=offからONBOOT=yesに変更して保存をする。

1.9. SYSCONFIG ファイルを使ったネットワーク設定