- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
您好,我正在尝试直接在我的 Dockerfile 中使用 mysql_config_editor 工具:
FROM mysql
RUN mysql_config_editor set --login-path=local --user=root --password
但是这个命令要求用户输入密码。知道无法直接在命令行中设置密码,有没有一种方法可以直接从 Dockerfile 中设置密码。
root@d80484a3177f:~# mysql_config_editor set --login-path=local --user=root --password
Enter password:
root@d80484a3177f:~# mysql_config_editor set --login-path=local --user=root --password=root
mysql_config_editor: [ERROR] mysql_config_editor: option '--password' cannot take an argument
谢谢
最佳答案
你可以使用 expect
来做到这一点:
这是您的 Dockerfile :
FROM mysql:5.7
RUN apt-get update && apt-get --no-install-recommends --no-install-suggests -y install expect
ENV MYSQL_ROOT_PASSWORD "secure_root_password"
ADD mysql_config.sh /root/mysql_config.sh
RUN cd /root && ./mysql_config.sh $MYSQL_ROOT_PASSWORD
这是 mysql_config.sh :
#!/usr/bin/expect
set pwd [lindex $argv 0];
spawn mysql_config_editor set --login-path=local --host=localhost --user=root --password
expect -nocase "Enter password:" {send "${pwd}\r"; interact}
现在你可以直接连接到 MySQL 了:
$ docker exec -it your-mysql-container mysql --login-path=local
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 6
Server version: 5.7.18 MySQL Community Server (GPL)
Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
也许这不是最干净的方法,但它确实有效!
关于带有 docker 的 mysql_config_editor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39495030/
我跑了sudo apt-get install mysql-client它安装正确。然后我跑了mysql_config_editor print我得到了 mysql_config_editor: no
在运行Windows 7 pro的计算机上使用mysql_config_editor,因此密码不需要放入批处理文件中 在 Windows 7 Pro 上运行 MySql 版本 5.7。我正在学习MyS
您好,我正在尝试直接在我的 Dockerfile 中使用 mysql_config_editor 工具: FROM mysql RUN mysql_config_editor set --login-
我已经升级到 mysql 5.6.13 并且想尝试新的 --login-path 特性。 我使用 "mysql_config_editor set --login-path=local --host=
我将密码存储在变量 $db_pwd 中,我想将它传递给 shell 脚本中的 mysql_config_editor。我不能使用配置文件或 db_pwd 环境变量。 我在做这个 mysql_confi
我最近试图让我的服务器连接到 mysql_config_editor。我使用 mysql_config_editor set --login-path=FailOverTest --host=loca
我是一名优秀的程序员,十分优秀!