Mysql
無法訪問 mysql docker
我
docker-compose
用來創建mysql
容器。我得到主機 IP172.21.0.2
。但是當我連接mysql時。我得到錯誤:
- 我的
docker-compose.yml
:version: '2' services: ### Mysql container mysql: image: mysql:latest ports: - "3306:3306" volumes: - /var/lib/mysql:/var/lib/mysql environment: MYSQL_ROOT_PASSWORD: root MYSQL_DATABASE: test_db MYSQL_USER: test MYSQL_PASSWORD: test_pass
- 獲取我的主機 IP
docker inspect db_mysql_1 | grep IPAddress
"IPAddress": "172.21.0.2",
3. 訪問 mysql:mysql -h 172.21.0.2 -P 3306 -u root -proot
。
ERROR 1130 (HY000): Host '172.21.0.1' is not allowed to connect to this MySQL server
如何連接到 mysql 容器?
您可以在啟動 MySQL 容器時傳遞一個額外的環境變數,
MYSQL_ROOT_HOST=<ip>
這將創建一個具有從給定 IP 地址登錄的權限的 root 使用者。如果您想允許從任何 IP 登錄,您可以指定MYSQL_ROOT_HOST=%
.這僅適用於新創建的容器。
旋轉新容器時:
docker run --name some-mysql -e MYSQL_ROOT_HOST=% -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:latest
在撰寫文件中,它將是:
version: '2' services: ### Mysql container mysql: image: mysql:latest ports: - "3306:3306" volumes: - /var/lib/mysql:/var/lib/mysql environment: MYSQL_ROOT_PASSWORD: root MYSQL_DATABASE: test_db MYSQL_USER: test MYSQL_PASSWORD: test_pass MYSQL_ROOT_HOST: '%' # needs to be enclosed with quotes