Docker安装的MySQL备份dump脚本密码包含特殊字符的处理

2023-09-23 275点热度 0人点赞 0条评论

之前备份Docker下的MySQL数据库,我都是这样写的:

docker exec mysql sh -c 'exec mysqldump somedatabase -uroot -pmy-secret-pw' > /opt/somedatabase-dump.sql

somedatabase 是某个数据库的名字,-p后面的是密码,如果密码包含了复杂的特殊字符密码,例如里面含有$@!等字符,就会提示密码不正确。

解决方案是把密码作为变量,并且修改写法,如下:

MYSQL_PASSWORD='mysqlpwd@3$5'
cmd="docker exec mysql /usr/bin/mysqldump somedatabase -uroot --password='$MYSQL_PASSWORD' > /opt/somedatabase-dump.sql"
eval "$cmd"

还有一个办法,把密码存到文件中,例如 /opt/password_file.txt

docker exec mysql sh -c 'exec mysqldump somedatabase -uroot --password-file=/opt/password_file.txt' > /opt/somedatabase-dump.sql

 

admin

这个人很懒,什么都没留下

文章评论

您需要 登录 之后才可以评论