我正在尝试为超级用户root在docker-compose.yml中更改mysql数据库配置的密码。我似乎总是将它与'rootpw'值一起使用。我宁愿这样做:
export MYSQLPASS=mypass
然后更改docker-compose.yml文件
mysql:
image: repo.mitchell.com/mariadb:10.2
environment:
MYSQL_DATABASE: dataflow
MYSQL_USER: root
MYSQL_ROOT_PASSWORD: $MYSQL_PASS
,并在此处进行更改:
dataflow-server:
image: repo.mitchell.com/springcloud/spring-cloud-dataflow-server-local:1.6.3.RELEASE
container_name: dataflow-server
ports:
- "9393:9393"
- "9900:9900"
environment:
- spring.cloud.dataflow.applicationProperties.stream.spring.cloud.stream.kafka.binder.brokers=kafka:9092
- spring.cloud.dataflow.applicationProperties.stream.spring.cloud.stream.kafka.binder.zkNodes=zookeeper:2181
- spring_datasource_url=jdbc:mysql://mysql:3306/dataflow
- spring_datasource_username=root
- spring_datasource_password=$MYSQL_PASS
但是它似乎不能以这种方式工作。的确,我第一次启动docker-compose时,mysqlpass是rootpw。只是在下一次迭代中,我试图参数化密码,但是我的直觉是,也许mysql已经为root用户设置了当时的密码。我将尝试使用全新的VM [env]
答案 0 :(得分:1)
实际上,我的猜测是正确的。 所以这是我尝试使用mysql docker容器(即
)擦除安装在主机上的目录(db-data)的方法/home/cloud-user/springdataflow/db-data:/var/lib/mysqlcode
我要执行的操作是尝试重新启动数据库。 接下来,我导出变量$ MYSQL_PASS = mysecret或您选择的任何变量。
In summary the root user account password cannot be changed once set just by parameterizing the password after the fact, it needs to be done one time in the beginning. Which makes sense