如何在Docker MySQL实例上恢复.sql.gz转储?

时间:2016-09-16 06:22:43

标签: mysql docker

我有一个转储,它是从没有安装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

2 个答案:

答案 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)

  1. 因为从root登录不是问题,请使用root登录MySQL。
  2. 创建具有所有权限的另一个用户,一种等同于root的用户。
  3. Flush privieleges。
  4.   

    docker exec -i container_name mysql -uloader -ploader&lt; dump.sql