Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
没有手动步骤,无法在docker中将previledges自动授予MYSQL_用户权限_Docker_Docker Compose_Mysql 5.7 - Fatal编程技术网

没有手动步骤,无法在docker中将previledges自动授予MYSQL_用户权限

没有手动步骤,无法在docker中将previledges自动授予MYSQL_用户权限,docker,docker-compose,mysql-5.7,Docker,Docker Compose,Mysql 5.7,我想用MYSQL\u密码将所有权限授予MYSQL\u user的环境变量中定义的用户 尝试: 1.(成功)我编写了一个sql脚本来授予将其添加到docker entrypoint initdb.d的权限,它成功了。但是对于每个新用户,我不仅要编辑环境变量,还要编辑sql脚本,这对我来说是不可行的。 2.(已工作)进入容器并授予特权。(体力劳动) 期望: 仅在环境变量中的docker-compose.yml文件中传递新的MYSQL_用户名,当容器启动时,它会自动授予所有特权,而无需手动执行任何操作

我想用MYSQL\u密码将所有权限授予MYSQL\u user的环境变量中定义的用户

尝试: 1.(成功)我编写了一个sql脚本来授予将其添加到docker entrypoint initdb.d的权限,它成功了。但是对于每个新用户,我不仅要编辑环境变量,还要编辑sql脚本,这对我来说是不可行的。 2.(已工作)进入容器并授予特权。(体力劳动)

期望: 仅在环境变量中的docker-compose.yml文件中传递新的MYSQL_用户名,当容器启动时,它会自动授予所有特权,而无需手动执行任何操作

DOCKER编写文件

services:

  dbserver:
    image: mysql:5.7
    environment:
      MYSQL_ROOT_PASSWORD: dockerdb123
      MYSQL_USER: user
    ports:
      - "3306:3306"
    volumes:
      - ./datadir/mysql:/var/lib/mysql
      - ./db_scripts:/docker-entrypoint-initdb.d (<- without passing the grant script here)
服务:
数据库服务器:
图片:mysql:5.7
环境:
MYSQL\u ROOT\u密码:dockerdb123
MYSQL\u用户:USER
端口:
- "3306:3306"
卷数:
-./datadir/mysql:/var/lib/mysql

-./db\u scripts:/docker entrypoint initdb.d(我认为您缺少变量
MYSQL\u密码
,在docker hub图像的文档中,它说
MYSQL\u ROOT\u密码
用于用户ROOT,因此我认为您需要像这样更改yml:

  dbserver:
    image: mysql:5.7
    environment:
      MYSQL_ROOT_PASSWORD: dockerdb123
      MYSQL_USER: user
      MYSQL_PASSWORD: mypass
然后它将连接并获得超级用户。 似乎您正在尝试将root传递给名为user的用户,所以它无法工作

文件:


我尝试了这个方法,但仍然没有找到word。再次拒绝该用户的访问。因此,请尝试与root用户连接,并在
MYSQL\u root\u password
中输入密码,查看它是否连接,如果连接,然后在psql中运行此命令:
\du+
它将显示所有用户和授权。此外,如果您更改了yml文件中的某些内容,则应执行
>docker compose停止
,然后向上,因为没有它,更改将无法应用。
MYSQL_USER, MYSQL_PASSWORD
These variables are optional,
used in conjunction to create a new user and to set that user's password. This user will be granted superuser permissions (see above) for the database specified by the MYSQL_DATABASE variable. Both variables are required for a user to be created.
Do note that there is no need to use this mechanism to create the root superuser, that user gets created by default with the password specified by the MYSQL_ROOT_PASSWORD variable.