写在最前:
第一次尝试使用博客的形式记录问题,感觉比用word文档易于找到问题。一起共勉吧!!!
一、配置理论说明
此处直接采用mysql数据库进行连接,启动虚拟机里的docker,拉取mysql镜像,然后运行mysql容器。因docker内存有限,我的虚拟机里docker只能运行一个容器,所以此处决定在hadp02和hadp03这两台虚拟机的docker上各运行一个mysql容器,具体说明如下:
1.1 hadp03的docker
hadp3的ip为192.168.155.183
使用mysql端口号为3307
用navicat进行连接,连接名为centosone,用户名为root,密码为my-root-123
1.2 hadp03的docker
hadp02的ip为192.168.155.182
使用mysql端口号为3308
用navicat进行连接,连接名为centostwo, 用户名为root,密码为my-root-123
此处需要注意:因为在大数据处理课程上我使用docker中mysql端口号为3306和6666,这两个端口号已被占用,所以此处选择了3307和3308这两个端口号。端口不能随便选择,因为某些端口是有特殊意义的。
二、配置实例
1.1 hadp03的docker
①在虚拟机的docker上运行mysql容器,端口号设置为3307
docker run \
-e MYSQL_ROOT_PASSWORD=my-root-123 \
-p 3307:3306 \
-v mysql57vol:/var/lib/mysql \
-v /home/my/custom:/etc/mysql/conf.d \
-d mysql:5.7
②使用docker ps命令查看运行情况
③使用navicat工具进行连接
1.2 hadp02的docker
①在虚拟机的docker上运行mysql容器,端口号设置为3308
docker run \
-e MYSQL_ROOT_PASSWORD=my-root-123 \
-p 3308:3306 \
-v mysql57vol:/var/lib/mysql \
-v /home/my/custom:/etc/mysql/conf.d \
-d mysql:5.7
②使用docker ps命令查看运行情况
③使用navicat工具进行连接
三、连接过程中出现的问题
在使用docker时每次都会出现很多问题,有重复的问题也有新的问题,为了避免重复网络查找,此处在此进行记录:
- 在hadp02启动端口后,用navicat进行连接一直报错
原因:在使用docker image查看mysql的镜像时,我发现之前下载的mysql有问题,回想起来,当时因为下载太慢然后放在一边没管它,所以导致下载的mysql根本不能用。
解决方案:使用命令docker rmi 14905234a4ed 删除这个镜像,然后重新下载一个mysql:5.7的即可
- 使用常用的命令启动3308端口号后,在navicat端连接时一直报错(Unknow error)
原因:我发现一出现这个报错,要么是密码没输对,要么是我在docker上启动的端口根本就没有启动,虽然我使用docker ps查看时,显示是处于启动的状态。这个错误我遇到过很多次,到现在也不明白原因,不过可以用下面的方法解决这个问题。
解决方案:删除之前启动的容器,然后用这个命令启动docker run -itd --name mysql-dev2 -p 3308:3306 -e MYSQL_ROOT_PASSWORD=my-root-123 mysql:5.7,就能成功。
这个命令也有要注意的地方:
- 我把这个命名为mysql-dev2,因为当时显示mysql-dev已被使用,以后要启动新的容器,可能就要命名为mysql-dev3、mysql-dev4、等等等等了。
- 最后的mysql要指定版本号,比如我的就是mysql5:7