从MySQL Docker映像导出数据

DMC*_*ing 4 mysql mysqldump suppress-warnings docker

我使用官方的MySQL docker镜像。这是一个极好的形象!但是我很难从实例中导出数据而没有错误。我这样运行导出:

docker run -it --link containername:mysql --rm mysql sh -c 
    'exec mysqldump 
        -h"$MYSQL_PORT_3306_TCP_ADDR" 
        -P"$MYSQL_PORT_3306_TCP_PORT" -uroot 
        -p"$MYSQL_ENV_MYSQL_ROOT_PASSWORD" 
     dbname'
| gz > output.sql.gz
Run Code Online (Sandbox Code Playgroud)

但是,这会导致警告:

"mysqldump: [Warning] Using a password on the command line interface can be insecure."
Run Code Online (Sandbox Code Playgroud)

作为输出文件的第一行。显然,这稍后会给用于消耗数据的任何其他MySQL进程造成问题。

有什么办法可以抑制来自mysqldump客户的警告?

pri*_*kar 10

回答迟了一点,但是这个命令挽救了我的生命。

docker exec CONTAINER /usr/bin/mysqldump -u root --password=root DATABASE > backup.sql
Run Code Online (Sandbox Code Playgroud)

  • 漂亮、干净并且只使用 docker (3认同)
  • 对我来说这有效: docker exec CONTAINER mysqldump -u root --password=root DATABASE > backup.sql (2认同)

小智 8

在终端上运行以下命令

docker exec CONTAINER_id /usr/bin/mysqldump -uusername --password=yourpassword databasename> backup.sql
Run Code Online (Sandbox Code Playgroud)

更换

  1. CONTAINER_id。用户名,您的密码

具体到您的配置。

获取容器 ID:

docker container ls
Run Code Online (Sandbox Code Playgroud)


tom*_*rby 6

我意识到这是一个老问题,但是对于那些绊脚石的人来说,我现在整理了一篇有关从mysql docker容器中导出和导入的文章:https : //medium.com/@tomsowerby/mysql-backup-and-restore-in -docker-fcc07137c757 它涵盖了“在命令行界面上使用密码...”警告以及如何绕过该警告。