1. 程式人生 > 實用技巧 >laradock下mysql You need to specify one of MYSQL_ROOT_PASSWORD, MYSQL_ALLOW_EMPTY_PASSWORD and MYS...

laradock下mysql You need to specify one of MYSQL_ROOT_PASSWORD, MYSQL_ALLOW_EMPTY_PASSWORD and MYS...

上圖

異常報錯

mysql You need to specify one of MYSQL_ROOT_PASSWORD, MYSQL_ALLOW_EMPTY_PASSWORD and MYSQL_RANDOM_ROOT_PASSWORD
大概意思就是:mysql 容器需要開啟必須設定這幾個引數 很簡單
我們在.env檔案中加入

MYSQL_VERSION=5.7
MYSQL_DATABASE=default
MYSQL_USER=default
MYSQL_PASSWORD=root
MYSQL_PORT=3306
MYSQL_ROOT_PASSWORD=root
MYSQL_ALLOW_EMPTY_PASSWORD=root
MYSQL_RANDOM_ROOT_PASSWORD=root
MYSQL_ENTRYPOINT_INITDB=./mysql/docker-entrypoint-initdb.d

接下來重新讀一遍配置

# 停止所有mysql 容器
docker-compose stop mysql
# 清理快取配置
docker-compose build --no-cache mysql
# 重啟docker在操作
docker-compose build mysql
# 載入容器
docker-compose up  mysql

到這一步應該沒問題了吧 結果

配置無效 全域性搜一下MYSQL_PASSWORD 應該有個docker 啟動檔案讀取了 .env 果然 鎖定了docker-compose.yml 這個檔案 原來檔案讀取在這

加入配置

  mysql56:
      build:
        context: ./mysql56
        args:
          - MYSQL_VERSION=5.6
      environment:
        - MYSQL_DATABASE=${MYSQL_DATABASE}
        - MYSQL_USER=${MYSQL_USER}
        - MYSQL_PASSWORD=${MYSQL_PASSWORD}
        #- MYSQL_ROOT_PASSWcORD=${MYSQL_ROOT_PASSWORD}
        - MYSQL_ROOT_PASSWCORD=${MYSQL_ROOT_PASSWORD}
        - MYSQL_ALLOW_EMPTY_PASSWORD=${MYSQL_ALLOW_EMPTY_PASSWORD}
        - MYSQL_RANDOM_ROOT_PASSWORD=${MYSQL_RANDOM_ROOT_PASSWORD}
        - TZ=${WORKSPACE_TIMEZONE}
      volumes:
        - ${DATA_PATH_HOST}/mysql:/var/lib/mysql
        - ${MYSQL_ENTRYPOINT_INITDB}:/docker-entrypoint-initdb.d
      ports:
        - "3308:3308"
      networks:
        - backend

過載 ok