2017-06-16 284 views
0

我尝试启动MySQL服务器,并使用docker-compose。这里是docker-compose.yaml部分:MySQL在docker-compose中 - 访问被拒绝

mysql: 
    restart: always 
    image: mysql:latest 
    ports: 
    - "3306:3306" 
    volumes: 
    - /Users/user/Documents/.docker/mysql/config:/etc/mysql/ 
    - /Users/user/Documents/.docker/mysql/data:/var/lib/mysql 
    environment: 
    - MYSQL_ROOT_PASSWORD='123' 
    - MYSQL_ROOT_HOST='172.18.0.1' 

你看我指定root密码和主机,因为它是说here。然后我尝试连接(使用IntelliJ IDEA的,如果该事项),以DB:

jdbc:mysql://localhost:3306/?user=root&password=123&ssl=false 

但它不接受全权证书,并写入日志:

Access denied for user 'root'@'172.18.0.1' (using password: YES) 

请就如何解决它建议。谢谢。

+0

为您的用户授予从本地主机连接的权限。 – FMashiro

+0

你的意思是root用户无法从本地主机连接? – awfun

+0

是的,根用户目前只有权限连接@'172.18.0.1'而不是从本地主机连接,据我所见 – FMashiro

回答

2

很有可能你已初始化MySQL数据目录时,这些是不同的:当启动一个在/ var/lib中/ MySQL的从头目录

environment: 
- MYSQL_ROOT_PASSWORD='123' 
- MYSQL_ROOT_HOST='172.18.0.1' 

MySQL的图像只能尊重那瓦尔。

因此,如果您不关心数据,请清空您的卷:/Users/user/Documents/.docker/mysql/data或手动从mysql终端更改凭据。

+0

谢谢你,你是对的,那些不是初始设置。清除持久性目录帮助。 – awfun