主机Navicat连接Ubuntu下Docker启动的MySQL详细教程并解决遇到的错误
一、docker下载并运行mysql镜像下载:docker pull mysql:5.7运行镜像:docker run -it --rm --name mysql -e MYSQL_ROOT_PASSWORD=hanxue -p 3306:3306 -d mysql 进入容器中的mysql的shell命令:docker exec -it mysql bash登录...
·
一、docker下载并运行mysql镜像
下载:
docker pull mysql:5.7 |
运行镜像:
docker run -it --rm --name mysql -e MYSQL_ROOT_PASSWORD=hanxue -p 3306:3306 -d mysql |
进入容器中的mysql的shell命令:
docker exec -it mysql bash |
登录mysql账号:
mysql -uroot -phanxue |
查看host和user:
确保root的host为‘%’即代表可以远程连接。
给root远程登录权限:
ALTER user 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'hanxue'; |
刷新:
FLUSH PRIVILEGES; |
此时mysql设置完毕。
二、主机Navicat连接Ubuntu中docker运行的mysql镜像
查看Ubuntu当前ip:
发现docker竟然自己分配了个ip,想想美滋滋,于是在主机试试ping一下:
真的能ping通,于是直接在主机打开navicat,输入信息并连接:
这是咋回事?怎么会报2003 - Can't connect to MySQL server on 'x.x.x.x' (10038)错误呢?明明能ping通的啊,怎么连接不上,想想觉得很傻,这个ip是docker分配的ip啊,又不是Ubuntu的主机IP,于是ping一下10.0.2.15:
??????????????????
原来VirtualBox默认用的是NAT网络转换
,这个10.0.2.15和我主机的ip根本不在一个局域网中,自然ping不通。于是把连接方式改成桥接网卡:
查看ip:
主机ip:
看网段就知道了还ping啥呢,于是改掉mysql主机ip为222.24.32.231:
ok,问题解决~
更多推荐
已为社区贡献2条内容
所有评论(0)