我有一个转储,它是从没有安装Docker的机器上获取的。格式为.sql.gz - 我的问题是如何在我的Docker MySQL实例上恢复它?
能够从命令行访问MySQL:
docker run -it --link first-mysql:mysql --rm mysql sh -c 'exec mysql -h"$MYSQL_PORT_3306_TCP_ADDR" -P"$MYSQL_PORT_3306_TCP_PORT" -uroot -p"$MYSQL_ENV_MYSQL_ROOT_PASSWORD"'
无法使用此功能恢复转储:
docker exec -i first-mysql mysql -uroot -ppassword< db_dump.sql
答案 0 :(得分:2)
基本语法是:
gunzip dump.sql.gz
docker exec -i container_name mysql -uroot -proot < dump.sql
或者将dunp.sql复制到卷中进入conatainer并在那里启动mysql
docker exec -ti container_name bash
mysql < /volume_dir/dump.sql
其余的用mysql语法。
答案 1 :(得分:1)
docker exec -i container_name mysql -uloader -ploader&lt; dump.sql