Quo*_*Dat 12 mysql docker docker-compose
我正在使用docker-compose创建mysql容器。我得到主机 IP 172.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
Run Code Online (Sandbox Code Playgroud)获取我的主机 IP docker inspect db_mysql_1 | grep IPAddress
"IPAddress": "172.21.0.2",
访问 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容器?
小智 19
您可以在启动 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
Run Code Online (Sandbox Code Playgroud)
在撰写文件中,它将是:
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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
54313 次 |
| 最近记录: |