在安装MySQL时,自己按照别人的教程不管是安装mysql5.5还是mysql5.7总是在登录时遇到以下错误:
$ mysql -u root -p
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysqld.sock' (2)
不管自己是完全卸载后重新使用安装包安装,还是使用apt-get install安装,都会出现这样的错误。自己花了几乎一天的时间还没有搞定。后来,师兄告诉我可以使用docker安装mysq,方法l特别简单。自己尝试以后,成功了,非常感谢师兄~
自己以前也听说过docker,但是从未使用过,于是从头开始通过Docker 教程|菜鸟教程学习了docker的一些基础知识,并且很快就能上手使用docker安装mysql了。自己在安装的过中还是与教程有不同的地方,希望给大家做一个参考。
##使用docker pull mysql安装mysql
① 查找Docker Hub上的mysql镜像
使用以下命令查找mysql镜像(因为自己需要sudo才能使用docker相关命令,所以自己的docker命令之前都会有sudo):
$ sudo docker search mysql
结果如下图所示:
② 拉取官方镜像
使用如下命令拉取官方的mysql镜像:
$ sudo docker pull mysql
拉取结果如下图所示:
可以使用如下命令查看mysql镜像的相关信息:
$ sudo docker images
结果如图所示:
- REPOSITORY:表示镜像的仓库源
- TAG:镜像的标签
- IMAGE ID:镜像ID
- CREATED:镜像创建时间
- SIZE:镜像大小
可以本地镜像列表里查到REPOSITORY为mysql,标签为latest的mysql镜像。
③ 使用容器运行mysql镜像
$ sudo docker run --name mysqldb -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:latest
这里的容器名字叫:mysqldb,mysql的root用户密码是:123456,映射宿主机子的端口3306到容器的端口3306,仓库名mysql和标签(tag)latest唯一确定了要指定的镜像。注意:就算这里只有一个mysql也有必须要有tag,执行该命令返回的结果是:
ecc81474cf2d0e66018cfdafdd7fac79ebb1574682ec662bff20b4a11a573866
- 注意:原本在菜鸟教程中此处运行容器的命令为:
$ sudo docker run -p 3306:3306 --name mymysql -v $PWD/conf/my.cnf:/etc/mysql/my.cnf -v $PWD/logs:/logs -v $PWD/data:/mysql_data -e MYSQL_ROOT_PASSWORD=123456 -d mysql:latest
但是自己执行之后会报错:
④ 查看容器启动情况
使用如下命令可以查看该容器的启动情况:
$ sudo docker ps
结果如图所示:
至此,使用docker安装mysql的工作就已经完成了。
以后使用如下命令开启并执行名为mysqldb的容器:
$ sudo docker start mysqldb
$ sudo docker exec -it mysqldb /bin/bash
使用如下命令关闭名为mysqldb的容器:
$ sudo docker stop mysqldb
⑤ mysql简单交互
(1)输入命令连接mysql:
$ mysql -u root -p
在Enter password:
处 ,输入刚刚设置的密码123456
。
(2)退出mysql
$ exit #退出mysql交互环境,对应的是**mysql -u root -p**命令
$ exit #退出名为mysqldb的容器,对应的是**sudo docker exec -it mysqldb /bin/bash**命令