やらないとなぁ とずっと思っていたWeb鯖のDB(MySQL)のバージョンアップ。
5.7だったしw
っつーわけで、5.7から一気に8まで上げてやろうと。
仮想環境でリハーサルはしてあるので、手順もある。
DBは消えなくてそのまま使えて、リカバリとかも無く楽勝だった。
・・・が、やっぱり問題発生(お約束
仮想環境でやった通りに、古いの消す→新しいの入れる→諸々(再)起動でOKかと思いきや
Nextcloudのメンテナンスモードを終了するときにエラーが大量に出た。
そしてBlogを見ようとしてもエラーになる。
ひとまず原因究明するために
mysql -u root -p
とrootでDBに繋ごうとしてエラー。
パスワード無しでもダメ。
DBの実データが保存されている/var/lib/mysql/
を見ると、俺関連の物が綺麗サッパリなくなってる。
全部初期化されたか。
じゃ、rootのパスワードって何だよ。入れんぞ。ほぼ詰んでるぞ。
ググってみると、ログの中に初期パスワードが書かれているらしい。
というわけで、
view /var/log/mysqld.log
で、ログファイルを開いて「password is generated」で検索を掛けると
みたいな感じで吐かれていた。
そのパスワードで入って、
ALTER USER 'root'@'localhost' identified BY 'HOGEhoge1234';
すぐ変更。
show databases;
で何も無いのを確認できたので、必要なDBを作成。
create database HogeDB;
続いて接続するためのユーザを作成する。
create user 'HogeUser' identified by 'HogePassword';
続いて権限を付与。
grant all privilegeson HogeDB.* to HogeUser@localhost;
が、エラー。
いやいやいやいや。rootだよ?
ググって原因を探っていると、構文が古いことが判明。
それならもっと別のエラーメッセージにしてくれたら良いのに。
grant all privileges on HogeDB.* TO 'HogeUser'@'%' with grant option;
必要なDB/ユーザ分繰り返す。
flush privileges;
を忘れずに。
これでユーザができたので、最初に取っておいたバックアップから戻す作業に入る。
手順を端折らずエクスポートをしていた俺GJ。
データ量の多い日記(ここ)のインポートにやたらと時間がかかって不安になったけど
全部問題無く入った。
予定より2時間ぐらい余計に掛かったけど無事完了。
理屈上では速度アップしているはずだけど・・・あんまわからんなw