我使用这个 shell 管道通过终端获取 SQL 转储:
$ cd var/lib/mysql && mysqldump -uroot -p"craft" --add-drop-table craft > ~/../docker-entrypoint-initdb.d/base.sql && cd ~/..
Run Code Online (Sandbox Code Playgroud)
可以看出,我进入了该var/lib/mysql
目录并将转储创建到一个文件中,然后从我最初所在的位置返回。
命令是正确的,但是,我想它可以像不直接进入var/lib/mysql
目录一样简洁地编写。
有人可以建议吗?
老实说,我根本看不出这两个电话的原因cd
。
你似乎没有使用你的目录 cd
进入进行任何操作。您提供了数据库转储位置的绝对路径。如果需要任何自定义 MySQL 配置文件,则无论如何都将从用户的主目录中获取。
因此,您很可能只需使用
mysqldump -uroot -p"craft" --add-drop-table craft \
> ~/../docker-entrypoint-initdb.d/base.sql
Run Code Online (Sandbox Code Playgroud)
无论您从哪个目录运行它。