Mysql docker容器不断重启

dldeef67  于 2024-01-05  发布在  Mysql
关注(0)|答案(6)|浏览(317)

集装箱一直在重启我试过了

  • docker-compose down -v
  • 停靠程序卷rm

集装箱之前工作正常

  1. 2021-03-27 13:16:08+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.23-1debian10 started.
  2. 2021-03-27 13:16:08+00:00 [Note] [Entrypoint]: Switching to dedicated user 'mysql'
  3. 2021-03-27 13:16:08+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.23-1debian10 started.
  4. 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
  5. Remove MYSQL_USER="root" and use one of the following to control the root user password:
  6. - MYSQL_ROOT_PASSWORD
  7. - MYSQL_ALLOW_EMPTY_PASSWORD
  8. - MYSQL_RANDOM_ROOT_PASSWORD

字符串

Docker-compose.yml

  1. mysql:
  2. image: mysql:8.0
  3. ports:
  4. - 3306:3306
  5. expose:
  6. - "3306"
  7. cap_add:
  8. - SYS_NICE # CAP_SYS_NICE
  9. volumes:
  10. - ./cache/mysql:/var/lib/mysql
  11. - ./conf-mysql.cnf:/etc/mysql/conf.d/mysql.cnf
  12. environment:
  13. - MYSQL_ROOT_PASSWORD=root
  14. - MYSQL_PASSWORD=root
  15. - MYSQL_USER=root
  16. - MYSQL_DATABASE=mydb
  17. restart: unless-stopped

9vw9lbht

9vw9lbht1#

只需删除MYSQL_USER,它就可以正常工作,因为root用户会自动创建。

  • PS.这似乎是一个新的docker版本的问题,因为这以前工作,而不是抛出错误。*
5q4ezhmt

5q4ezhmt2#

用户root是保留的,并且在mysql启动时已经被创建。
MYSQL_USER必须是不同的名称,而不是root

xt0899hw

xt0899hw3#

我遇到了同样的问题,这就是我如何解决它。
转到docker-compose.yml文件并进行以下更改:

  • 从“MYSQL_USER:root”到“MYSQL_ROOT_USER:root”,然后删除前一个。
  • 将“MYSQL_PASSWORD:YourPasseord”更改为“MYSQL_ROOT_PASSWORD:YourPasseord”,然后删除前一个。

示例:这是我的配置...
数据库服务器:

  1. image: mysql:8.0
  2. container_name: mysql
  3. restart: always
  4. environment:
  5. MYSQL_DATABASE: DB_epraca
  6. MYSQL_ROOT_USER: root
  7. MYSQL_ROOT_PASSWORD: Password
  8. MYSQL_ROOT_HOST: localhost

字符串

展开查看全部
cgvd09ve

cgvd09ve4#

最近官方mysql docker的更改导致了这个问题。更多细节可以查看this PR on github
为了快速解决这个问题,您应该删除MYSQL_USER=root,您的docker-compose.yaml文件应该看起来像这样

  1. mysql:
  2. image: mysql:8.0
  3. ports:
  4. - 3306:3306
  5. expose:
  6. - "3306"
  7. cap_add:
  8. - SYS_NICE # CAP_SYS_NICE
  9. volumes:
  10. - ./cache/mysql:/var/lib/mysql
  11. - ./conf-mysql.cnf:/etc/mysql/conf.d/mysql.cnf
  12. environment:
  13. - MYSQL_ROOT_PASSWORD=root
  14. - MYSQL_DATABASE=mydb
  15. restart: unless-stopped

字符串

展开查看全部
bybem2ql

bybem2ql5#

仅更新.env文件:

  1. DB_USERNAME=sail
  2. DB_PASSWORD=password

字符串

jljoyd4f

jljoyd4f6#

remove MYSQL_USER=root as root user is created by default and when you use MYSQL_USER=root it tries to create a new normal user with name root which cause conflict. do follow the image in this way:

  1. mysql:
  2. image: mysql:latest
  3. environment:
  4. MYSQL_DATABASE: "paradise"
  5. MYSQL_USER: "paradise"
  6. MYSQL_PASSWORD: "bajbciu2dbwc"
  7. MYSQL_ROOT_PASSWORD: "bajbciu2dbwc"
  8. ports:
  9. - "6033:3306"
  10. volumes:
  11. - mysql_data:/var/lib/mysql # Map MySQL data directory into the container
  12. env_file:
  13. - .env
  14. restart: on-failure:5
  15. healthcheck:
  16. interval: 5s
  17. timeout: 5s
  18. retries: 5

字符串
设置MYSQL_ROOT_PASSWORD:"password_of_your_choice"将为root用户设置密码,设置MYSQL_USER: "paradise" , MYSQL_PASSWORD: "bajbciu2dbwc"将为您创建一个新用户。

展开查看全部

相关问题