簡體   English   中英

mysql-docker-container - 錯誤 1045 (28000):用戶 'root'@'localhost' 的訪問被拒絕(使用密碼:NO)

[英]mysql-docker-container - ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

我正在使用以下 docker-compose 文件創建 mysql docker 容器。 服務已成功創建,但是當我嘗試進入容器內部時出現以下錯誤 ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

docker container exec -it 966 /bin/bash
root@96607883960b:/# mysql -uroot -p
Enter password: 
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
root@96607883960b:/# 



version: '3.3'

services:
   db:
    image: mysql:5.7.29
    container_name: mysql
    deploy:
      replicas: 1
      restart_policy:
        condition: on-failure
    environment:
      - MYSQL_USER="testpass"
      - MYSQL_PASSWORD="testpass"
      - MYSQL_ROOT_PASSWORD="testpass"
    ports:
      - 33060:3306
    volumes:
      - /Users/hello/Work/Volumes/wavolumes/mysql:/var/lib/mysql

我發現很多文章都沒有幫助解決這個問題

有人能解決這個問題嗎?

您的連接確實有效,您可以驗證它是否運行以下內容(服務應該已經在運行:):

docker-compose exec db sh -c 'mysql -uroot -p${MYSQL_ROOT_PASSWORD}'

問題是您使用了錯誤的密碼。

您可以通過運行docker-compose config輕松查看您的問題。 您將在 output 中看到雙引號包含在值中。

此版本應該可以解決您的問題:

version: '3.3'

services:
   db:
    image: mysql:5.7.29
    container_name: mysql
    deploy:
      replicas: 1
      restart_policy:
        condition: on-failure
    environment:
      - MYSQL_USER=testpass
      - MYSQL_PASSWORD=testpass
      - MYSQL_ROOT_PASSWORD=testpass
    ports:
      - 33060:3306
    volumes:
      - /Users/hello/Work/Volumes/wavolumes/mysql:/var/lib/mysql

偶然發現了同樣的錯誤並嘗試了接受的解決方案,以及僅使用 Dockerfile、嘗試“MYSQL_ALLOW_EMPTY_PASSWORD”、“MYSQL_RANDOM_ROOT_PASSWORD”和不同的 mysql 圖像標簽(5.6、5.7 和最新)。 根信用也不起作用。 我顯然做錯了什么。

我的作曲看起來像這樣:

version: '3.3'
services:
  db:
    image: mysql:5.7
    restart: always
    environment:
      MYSQL_USER: usr
      MYSQL_PASSWORD: pass
      MYSQL_ROOT_PASSWORD: root
    ports:
      - "3306:3306"
    volumes:
      - d:/vm/docker-volumes/mysql:/var/lib/mysql

我通過docker-compose -f "docker-compose.yml" up -d --build命令構建它,然后嘗試通過執行docker exec -it docker_db_1 bash -c 'mysql --protocol=tcp -u usr -p${MYSQL_PASSWORD}'來連接它docker exec -it docker_db_1 bash -c 'mysql --protocol=tcp -u usr -p${MYSQL_PASSWORD}'和其他變體。 總是得到ERROR 1045 (28000): Access denid for user...

除了接受的答案中建議的步驟之外,您是否介意澄清一下您是否做了其他事情來使其工作?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM