首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在新实例启动时创建新用户

在新实例启动时创建新用户
EN

Stack Overflow用户
提问于 2018-10-06 14:57:26
回答 1查看 2.7K关注 0票数 2

我目前正与Docker一起使用MySQL创建数据库复制。我需要在Docker容器启动时创建用户并授予复制。

我已经查看了MySQL的Dockerhub,您似乎可以将文件复制到目录中,然后按字母顺序执行它们。看这里

我创建了一个像这样的init.sql文件-

代码语言:javascript
复制
CREATE USER 'slave'@'%' IDENTIFIED BY 'password'
GRANT REPLICATION SLAVE ON *.* TO 'slave'@'%'

因此,它实际上只是创建用户,然后授予他们复制。

但是,当运行此操作时,数据库永远不会启动,因为sql会生成错误。

不允许操作

那么,似乎init.sql文件正在运行,但它没有权限?

我的Dockerfile是最小的,这就是-

代码语言:javascript
复制
FROM mysql:latest

COPY Docker/database/init.sql /docker-entrypoint-initdb.d/init.sql

我还试图以命令的形式执行以下操作:

代码语言:javascript
复制
#!/bin/bash
mysql --protocol=socket -uroot -p$MYSQL_ROOT_PASSWORD <<EOSQL
CREATE USER 'slave'@'%' IDENTIFIED BY 'password'
GRANT REPLICATION SLAVE ON *.* TO 'slave'@'%'
EOSQL
EN

回答 1

Stack Overflow用户

发布于 2018-10-06 16:46:24

我在示例中的行尾添加了分号。mysql数据库现在为我构建并运行。

代码语言:javascript
复制
CREATE USER 'slave'@'%' IDENTIFIED BY 'password';
GRANT REPLICATION SLAVE ON *.* TO 'slave'@'%';

正如在上面的注释中提到的,mbind错误是不相关的:https://github.com/docker-library/mysql/issues/303

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52680293

复制
相关文章

相似问题

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