我已获取mysql的最新docker映像,但无法从Windows主机连接到它。
执行以下命令:
docker run -p 3306:3306 --hostname=sql --name=mysql_working -d mysql/mysql-server:latest
我可以使用以下命令查看IP地址:
docker inspect --format "{{ .NetworkSettings.IPAddress }}" 3ddbeeeb27e9enter
当我进行telnet时,它正在超时
telnet sql 3306
与ping相同
ping <ip address from docker>
有人可以建议缺少什么吗?
答案 0 :(得分:0)
第一步:在docker容器中首次安装后,需要更改MySQL的默认密码
docker logs <container_name or container_id>
docker logs <container_name or container_id> 2>&1 | grep GENERATED
step2:notedown默认密码
第3步:
docker exec -it <container_name or container_id> mysql -uroot -p
输入默认密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'password';
有关步骤1到步骤3的更多信息,check here
第4步:在mysql中以用户名root添加新用户,并使用密码托管任何用户
create user 'root'@'%' identified by 'password';
step5:授予该用户所有权限
grant all privileges on *.* to 'root'@'%' with grant option;
有关步骤4至步骤5的更多信息,check here
步骤6:从docker容器中退出:按下ctrl+p+q
键(不加ctrl与p和q的组合键)
第7步:假设您当时在主机上 (否则,您提供主机的ipaddress而不是localhost)
telenet -l root localhost 3306
要求输入密码(我们在步骤4中输入密码作为密码)
按ctrl+]
键(不加ctrl和]的组合键)
人才连接成功.. !!
答案 1 :(得分:0)
您要公开端口3306
,以便Sql容器可用于主机。
如果您使用的是Windows计算机,请输入ipconfig
或对于Linux:
ifconfig
或ip addr
查找主机的IP地址并使用该IP连接到Sql。
您也可以通过docker logs -f container_id
检查docker容器日志,此处-f
用于跟踪日志。