mysql
今日はまさかのWordPressがDB接続確立errorで見られなくなりました。
かなりゾッとしたので、バックアップのcron回します。
あとDB接続したらレイアウトがガタガタに崩れていたので
きちんとgit管理します🙋
異常終了によるロック状態になっていたため
ロックファイルの削除をしてDB起動しました。
以下、作業ログです。
作業ログ、ここに残してもまたDB確立error起きたら見られないんだけどね..
暗記しよう😃
$ service mysqld status $ cd /var/lock/subsys/ $ rm -rf mysqld $ sudo su - # service mysqld start 帰宅後サーバー内に入り、原因調査をしました。
$ cd /var/log/ $ tail -n200 mysqld.log 2019-12-17 03:44:07 3906 [ERROR] InnoDB: Cannot allocate memory for the buffer pool 2019-12-17 03:44:07 3906 [ERROR] Plugin 'InnoDB' init function returned error. 2019-12-17 03:44:07 3906 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed. 2019-12-17 03:44:07 3906 [ERROR] Unknown/unsupported storage engine: InnoDB 2019-12-17 03:44:07 3906 [ERROR] Aborting 2019-12-17 03:44:07 3906 [Note] Binlog end 2019-12-17 03:44:07 3906 [Note] Shutting down plugin 'partition' 2019-12-17 03:44:07 3906 [Note] Shutting down plugin 'INNODB_SYS_DATAFILES' 2019-12-17 03:44:07 3906 [Note] Shutting down plugin 'INNODB_SYS_TABLESPACES' 2019-12-17 03:44:07 3906 [Note] Shutting down plugin 'INNODB_SYS_FOREIGN_COLS' 2019-12-17 03:44:07 3906 [Note] Shutting down plugin 'INNODB_SYS_FOREIGN' 2019-12-17 03:44:07 3906 [Note] Shutting down plugin 'INNODB_SYS_FIELDS' ~~~~~~~略~~~~~~~ ERRORし始めて、しばらくしたらShutting down plugin が始まっているのが分かります。
備忘録としてまとめます。
ざっくりとやった内容です。
AWSでEC2インスタンスをたてる EC2内にLAMP環境を構築 EC2内にWordPressをインストール 旧WordPressからデータをエクスポート 新WordPressへデータをインポート Route53でサブドメインを切る Let’s Encryptで証明書発行 諸々の設定ファイルを書く AWSでEC2インスタンスをたてる 主に参考にした記事です。
Amazon EC2 Linux インスタンスの開始方法 - Amazon Elastic Compute Cloud
注意するポイントとして
Amazon Linux 2ではなくAmazon Linux AMIを使用します。
好みの問題かもしれないですが
Amazon Linux 2
$ sudo amazon-linux-extras install -y lamp-mariadb10.2-php7.2 php7.2
Amazon Linux AMI
$ sudo yum install -y httpd24 php70 mysql56-server php70-mysqlnd
この違いです。
amazon-linux-extrasではなくyumを使いたかったので
Amazon Linux AMIを使用しました。
セキュリティグループは下記のとおりです。
SSH: ポート範囲22
HTTP: ポート範囲80
HTTPS: ポート範囲443
鍵を作成したら.ssh配下に移動します。
$ mv ~/.Downloads/HogeKeyName.pem ~/.ssh/
権限の変更をします。
$ chmod 600 HogeKeyName.
WordpressのEC2インスタンス内にあるMySQLデータをバックアップします。
MySQLのデータベースをmysqldumpでバックアップ/復元する方法
上記を参考にして進めました。
まずはEC2内に入りエクスポート
$ mysqldump –single-transaction –databases [DB名] -u [ユーザー名] -p > /tmp/backup20191004.sql
オプション解説
--single-transaction
データの整合性を維持する。ワントランザクションで作業を行う設定する
--databases [DB名]
DB名の指定
-u [ユーザー名]
ユーザー名の指定
-p
上で指定したユーザー名のパスワードを使用するオプション
dumpファイルを取ることに成功しました!
Next Step
RDSを作成します。