Mysql docker 容器不断重启
Mysql docker container keeps restarting
容器不断重启。
我试过了
- docker-写下来-v
- docker 音量 rm
The container was working fine earlier.
日志
2021-03-27 13:16:08+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.23-1debian10 started.
2021-03-27 13:16:08+00:00 [Note] [Entrypoint]: Switching to dedicated user 'mysql'
2021-03-27 13:16:08+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.23-1debian10 started.
2021-03-27 13:16:08+00:00 [ERROR] [Entrypoint]: MYSQL_USER="root", MYSQL_USER and MYSQL_PASSWORD are for configuring a regular user and cannot be used for the root user
Remove MYSQL_USER="root" and use one of the following to control the root user password:
- MYSQL_ROOT_PASSWORD
- MYSQL_ALLOW_EMPTY_PASSWORD
- MYSQL_RANDOM_ROOT_PASSWORD
Docker-compose.yml
mysql:
image: mysql:8.0
ports:
- 3306:3306
expose:
- "3306"
cap_add:
- SYS_NICE # CAP_SYS_NICE
volumes:
- ./cache/mysql:/var/lib/mysql
- ./conf-mysql.cnf:/etc/mysql/conf.d/mysql.cnf
environment:
- MYSQL_ROOT_PASSWORD=root
- MYSQL_PASSWORD=root
- MYSQL_USER=root
- MYSQL_DATABASE=mydb
restart: unless-stopped
用户 root
已保留并已在 mysql 启动时创建。
MYSQL_USER
必须是不同的名称,而不是 root
。
只需删除 MYSQL_USER
即可,因为会自动创建 root
用户。
PS。这似乎是较新的 docker 版本的问题,因为它以前可以工作并且不会引发错误。
我遇到了完全相同的问题,下面是我如何解决的。
转到您的 docker-compose.yml 文件并进行以下更改:
"MYSQL_USER: root" 到 "MYSQL_ROOT_USER: root" 然后删除
上一个
"MYSQL_PASSWORD: YourPasseord" 到 "MYSQL_ROOT_PASSWORD:
YourPasseord" 然后删除上一个。
示例:这是我的配置...
database_server:
image: mysql:8.0
container_name: mysql
restart: always
environment:
MYSQL_DATABASE: DB_epraca
MYSQL_ROOT_USER: root
MYSQL_ROOT_PASSWORD: Password
MYSQL_ROOT_HOST: localhost
仅更新您的 .env 文件:
DB_USERNAME=sail
DB_PASSWORD=password
官方最近更改了 mysql docker 导致此问题的方式。有关详细信息,您可以查看 this PR on github.
要获得快速解决方案,您应该删除 MYSQL_USER=root
并且您的 docker-compose.yaml
文件应如下所示
mysql:
image: mysql:8.0
ports:
- 3306:3306
expose:
- "3306"
cap_add:
- SYS_NICE # CAP_SYS_NICE
volumes:
- ./cache/mysql:/var/lib/mysql
- ./conf-mysql.cnf:/etc/mysql/conf.d/mysql.cnf
environment:
- MYSQL_ROOT_PASSWORD=root
- MYSQL_DATABASE=mydb
restart: unless-stopped
容器不断重启。 我试过了
- docker-写下来-v
- docker 音量 rm
The container was working fine earlier.
日志
2021-03-27 13:16:08+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.23-1debian10 started.
2021-03-27 13:16:08+00:00 [Note] [Entrypoint]: Switching to dedicated user 'mysql'
2021-03-27 13:16:08+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.23-1debian10 started.
2021-03-27 13:16:08+00:00 [ERROR] [Entrypoint]: MYSQL_USER="root", MYSQL_USER and MYSQL_PASSWORD are for configuring a regular user and cannot be used for the root user
Remove MYSQL_USER="root" and use one of the following to control the root user password:
- MYSQL_ROOT_PASSWORD
- MYSQL_ALLOW_EMPTY_PASSWORD
- MYSQL_RANDOM_ROOT_PASSWORD
Docker-compose.yml
mysql:
image: mysql:8.0
ports:
- 3306:3306
expose:
- "3306"
cap_add:
- SYS_NICE # CAP_SYS_NICE
volumes:
- ./cache/mysql:/var/lib/mysql
- ./conf-mysql.cnf:/etc/mysql/conf.d/mysql.cnf
environment:
- MYSQL_ROOT_PASSWORD=root
- MYSQL_PASSWORD=root
- MYSQL_USER=root
- MYSQL_DATABASE=mydb
restart: unless-stopped
用户 root
已保留并已在 mysql 启动时创建。
MYSQL_USER
必须是不同的名称,而不是 root
。
只需删除 MYSQL_USER
即可,因为会自动创建 root
用户。
PS。这似乎是较新的 docker 版本的问题,因为它以前可以工作并且不会引发错误。
我遇到了完全相同的问题,下面是我如何解决的。
转到您的 docker-compose.yml 文件并进行以下更改:
"MYSQL_USER: root" 到 "MYSQL_ROOT_USER: root" 然后删除 上一个
"MYSQL_PASSWORD: YourPasseord" 到 "MYSQL_ROOT_PASSWORD: YourPasseord" 然后删除上一个。
示例:这是我的配置...
database_server:
image: mysql:8.0
container_name: mysql
restart: always
environment:
MYSQL_DATABASE: DB_epraca
MYSQL_ROOT_USER: root
MYSQL_ROOT_PASSWORD: Password
MYSQL_ROOT_HOST: localhost
仅更新您的 .env 文件:
DB_USERNAME=sail
DB_PASSWORD=password
官方最近更改了 mysql docker 导致此问题的方式。有关详细信息,您可以查看 this PR on github.
要获得快速解决方案,您应该删除 MYSQL_USER=root
并且您的 docker-compose.yaml
文件应如下所示
mysql:
image: mysql:8.0
ports:
- 3306:3306
expose:
- "3306"
cap_add:
- SYS_NICE # CAP_SYS_NICE
volumes:
- ./cache/mysql:/var/lib/mysql
- ./conf-mysql.cnf:/etc/mysql/conf.d/mysql.cnf
environment:
- MYSQL_ROOT_PASSWORD=root
- MYSQL_DATABASE=mydb
restart: unless-stopped