我目前正与Docker一起使用MySQL创建数据库复制。我需要在Docker容器启动时创建用户并授予复制。
我已经查看了MySQL的Dockerhub,您似乎可以将文件复制到目录中,然后按字母顺序执行它们。看这里。
我创建了一个像这样的init.sql文件-
CREATE USER 'slave'@'%' IDENTIFIED BY 'password'
GRANT REPLICATION SLAVE ON *.* TO 'slave'@'%'因此,它实际上只是创建用户,然后授予他们复制。
但是,当运行此操作时,数据库永远不会启动,因为sql会生成错误。
不允许操作
那么,似乎init.sql文件正在运行,但它没有权限?
我的Dockerfile是最小的,这就是-
FROM mysql:latest
COPY Docker/database/init.sql /docker-entrypoint-initdb.d/init.sql我还试图以命令的形式执行以下操作:
#!/bin/bash
mysql --protocol=socket -uroot -p$MYSQL_ROOT_PASSWORD <<EOSQL
CREATE USER 'slave'@'%' IDENTIFIED BY 'password'
GRANT REPLICATION SLAVE ON *.* TO 'slave'@'%'
EOSQL发布于 2018-10-06 16:46:24
我在示例中的行尾添加了分号。mysql数据库现在为我构建并运行。
CREATE USER 'slave'@'%' IDENTIFIED BY 'password';
GRANT REPLICATION SLAVE ON *.* TO 'slave'@'%';正如在上面的注释中提到的,mbind错误是不相关的:https://github.com/docker-library/mysql/issues/303
https://stackoverflow.com/questions/52680293
复制相似问题