なぜこの記事を書いたか
Macだとzcatじゃなくてgzcatだよっていう話と、
mysqlのpオプションをパイプで使うと怒られるよっていうのを忘れないため。
前提
- ディレクトリなどの名称は仮称
コマンド
流す対象のDBやユーザをまだ作ってなければ作成する
$ mysql -p -h 127.0.0.1
> CREATE DATABASE sample CHARACTER SET utf8mb4;
> GRANT ALL ON *.* TO 'admin'@'%' WITH GRANT OPTION;
> CREATE USER 'admin'@'localhost' IDENTIFIED BY 'admin';
> CREATE USER 'admin'@'127.0.0.1' IDENTIFIED BY 'admin';
> FLUSH PRIVILEGES;
ダンプを流し込む
$ export MYSQL_PWD=admin
$ gzcat ./infra/mysql/dump/sample.dump.gz | mysql -u admin -h 127.0.0.1 sample
ちなみにS3から流す場合
S3にあるのが生データならこう
$ export MYSQL_PWD=admin
$ aws s3 cp s3://バケット名/dump/20211023/sample.sql - | mysql -u admin -h 127.0.0.1 sample
S3にあるのがgzipならたぶんこう
$ export MYSQL_PWD=admin
$ aws s3 cp s3://バケット名/dump/20211023/sample.sql.gz - | gzcat | mysql -u admin -h 127.0.0.1 sample