我正在尝试为开发数据库创建mySQL容器。
我的应用是由golang制作的。
现在,我创建了docker-compose.yml来运行APP & DB。
mySQL容器已创建,我可以启动它,但如果我试图通过数据库客户端(Sequel Pro)连接此数据库,则显示拒绝访问。
这是我的docker-compose.yml
version: '3'
services: app:
build:
context: .
dockerfile: "Dockerfile"
ports:
- "8080:8080"
volumes: mysql:
image: mysql:5.7.10
environment:
MYSQL_ROOT_PASSWORD: 'pass'
ports:
- '3306:3306'
volumes:
- mysql-data:/var/lib/mysql volumes: mysql-data:
driver: local我做到了
$ docker-compose build和
$ docker-compose up -d然后创建容器,如果使用exec命令,mySQL如下
$ docker ps -a
1f7540fdedc1 mysql:5.7.10 "/entrypoint.sh mysq…" 1 second ago Up 2 seconds 0.0.0.0:3306->3306/tcp XXX_mysql_1在那之后,如果我尝试用sequel pro连接这个数据库,我可以在kitematic中看到这条消息。
Access denied for user 'root'@'172.18.0.1' (using password: YES)ip、用户名、密码、端口必须正确。
此外,如果我使用kitematic为mySQL创建停靠容器,我可以连接到该容器。
我不知道为什么会出现拒绝访问的情况。
发布于 2020-05-07 17:24:03
我已经解决了这个类似的问题。确保您拥有mysql版本的最新镜像。docker pull mysql:5.7.10。
然后删除关联的卷(如果存在数据,则备份)。如果你正在使用docker-compose yml version3,你应该像MYSQL_ROOT_PASSWORD=password一样映射你的环境。通过转到容器并运行命令echo $MYSQL_ROOT_PASSWORD来验证它是否正确设置。
如果您从主机登录,请尝试传递协议标志。mysql -u root -p --protocol=tcp (也可以传递主机localhost或127.0.0.1) -h 127.0.0.1
https://stackoverflow.com/questions/50834428
复制相似问题