备份Docker下的MySQL始终提示密码错误的问题解决

2023-11-20 206点热度 0人点赞 0条评论

我在使用脚本备份(使用mysqldump)MySQL数据库的时候,因为密码较为复杂(含有!&等特殊字符),总是提示密码不正确,原来的备份命令是(其中somepassword是密码,被我替换掉了):

MYSQL_ROOT_PASSWORD='somepassword'
docker exec mysql8 sh -c 'exec mysqldump --all-databases -uroot -p"$MYSQL_ROOT_PASSWORD"' > /opt/mysql-all-databases.sql

#或者直接带密码:
docker exec mysql8 sh -c 'exec mysqldump --all-databases -uroot -psomepassword' > /opt/mysql-all-databases.sql

错误提示:

mysqldump: [Warning] Using a password on the command line interface can be insecure.
mysqldump: Got error: 1045: Access denied for user 'root'@'localhost' (using password: YES) when trying to connect

最后的解决办法:

使用--env 参数传递环境变量

docker exec --env MYSQL_ROOT_PASSWORD='somepassword' mysql8 sh -c 'exec mysqldump --all-databases -uroot -p"$MYSQL_ROOT_PASSWORD"' > /opt/mysql-all-databases.sql

 

admin

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

文章评论

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