首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法执行mysql命令并在Windows中将$MYSQL_ROOT_PASSWORD与mysql docker一起使用

问无法执行mysql命令并在Windows中将$MYSQL_ROOT_PASSWORD与mysql docker一起使用
EN

Stack Overflow用户
提问于 2019-11-29 18:04:38
回答 2查看 213关注 0票数 0

在powershell控制台中,我设法在mysql docker中运行mysql命令:

代码语言:javascript
复制
docker exec mysql-container mysql -u root -psecret -e 'show databases;'

但是如果我想用MYSQL_ROOT_PASSWORD替换我的密码,它就不再起作用了:

代码语言:javascript
复制
docker exec mysql-container mysql -u root -p$MYSQL_ROOT_PASSWORD -e 'show databases;'
# ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

powershell似乎解释了$MYSQL_ROOT_PASSWORD,并将其作为空传递给容器。

我尝试过的其他命令:

代码语言:javascript
复制
docker exec mysql-container sh -c "mysql -u root -p$MYSQL_ROOT_PASSWORD -e 'show databases;'"
# Enter password: ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

docker exec mysql-container sh -c 'mysql -u root -p$MYSQL_ROOT_PASSWORD -e "show databases;"'
# ERROR 1064 (42000) at line 1: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '' at line 1
EN

回答 2

Stack Overflow用户

发布于 2019-11-29 18:11:18

尝试使用-it,因为它将退出,因为您没有分配tty,同时在密码前添加转义字符,否则,它将从主机而不是容器内部查找环境变量。

代码语言:javascript
复制
docker exec -it mysql-container bash -c " mysql  -u root -p"\$MYSQL_ROOT_PASSWORD" -e 'show databases;'"
票数 1
EN

Stack Overflow用户

发布于 2019-11-29 20:58:45

我终于设法获得了大量的引号来运行该命令:

代码语言:javascript
复制
docker exec mysql-container sh -c 'mysql -u root -p$MYSQL_ROOT_PASSWORD -e ''show databases;'''
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59102665

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档