我在Windows 8.1中使用docker-toolbox,并创建了一个名为default的docker-machine(虚拟框),并在其中运行mariadb容器。
我的问题是,我无法通过Windows系统上的HeidiSQL连接到所述数据库系统。
在docker容器中,我能够使用mysql命令并执行查询。
到目前为止我已经完成的步骤:
在虚拟盒子中添加端口转发:
https://imgur.com/a/GcfcKgG
将链转发防火墙规则更改为接受
证明:https://imgur.com/a/yxIBNvN
尝试通过heidisql使用ip“ localhost”,“ 127.0.0.1”和IP我通过“ docker-machine ip default”获得的IP连接到Windows中的数据库系统
通过“ winpty docker exec -it mariadb bash”连接到Docker容器,以检查防火墙问题,但一切都在那里接受。
确保在/etc/mysql/my.cnf内部注释掉了“ #bind = 127.0.01”
我真的不知道该怎么办才能找到问题所在。 Mariadb日志只是说它已准备好进行连接,但我似乎无法实现。
有什么主意我可以找到这个问题吗?
答案 0 :(得分:1)
我解决了。问题是我运行容器的命令缺少 store(balade: Balade): Observable<Balade[]> {
return this.http.post(`${this.baseUrl}/store.php`, { data: balade })
.pipe(map((res) => {
this.balades = this.balades || [];
this.balades.push(res['data']);
return this.balades;
}),
catchError(this.handleError));
}
选项,使我的容器未绑定到正确的端口(?)。
工作命令:
-p
最重要的是,我注意到在VirtualBox中更改端口转发选项需要重新启动所述计算机:
docker run --name mdb -e MYSQL_ROOT_PASSWORD=admin_password_here -p 3306:3306 -d mariadb/server:10.1
最后确保已将绑定地址行注释掉。我尝试将其绑定到不同的地址,但没有留下明确的注释:
docker-machine restart default