起步
在 Centos7 上安装 mysql 是一件比较麻烦的事儿,要么将源码拉下来自己编译,要么忍受乌龟爬的外网。只要操作简单,方案可行,乌龟爬就乌龟爬吧——如果你抱着这样的想法,不妨转至这篇文章 CentOS7安装MySQL(完整版)。
本文是想寻找一个折中点。既保证 mysql 正常使用,又不必被网速闹心。我仔细思索过,觉得借助 docker 容器是一优解。
操作步骤
$ yum install docker -y # 安装 docker
$ systemctl start docker # 启动 docker
$ docker pull daocloud.io/library/mysql:5.7 # 拉取 5.7 版本的 mysql 镜像
$ mkdir /var/mysql/conf /var/mysql/data -p # 创建本地目录,用于存放数据和配置文件
# 实例化并启动一个容器
$ docker run --name mysql57 \
-p 3306:3306 \
-v /var/mysql/data:/var/lib/mysql \
-v /var/mysql/conf:/etc/mysql/conf.d \
--privileged=true \
-e MYSQL_ROOT_PASSWORD=123456 \
-itd daocloud.io/library/mysql:5.7
-p 3306:3306
表示端口映射。也就说访问宿主机的 3306 端口就是在访问容器的 3306 端口。-v /var/mysql/data:/var/lib/mysql
是映射目录。本该存放在 docker 容器中的数据就会出现在指定的宿主机目录下。但你首先得确保宿主机上有这样一个目录。--privileged=true
为容器添加特定权限。如果不这样做,映射目录时容器内部将报错:chown: changing ownership of '/var/lib/mysql/': Permission denied。-e MYSQL_ROOT_PASSWORD=123456
设置 mysql 中的 root 用户密码。这里我设置为 123456,你可以自行修改。-itd daocloud.io/library/mysql:5.7
以守护的方式实例一个容器。:5.7
用来指定标签,也就是指定 mysql 的版本(docker pull 中也是这个道理)。更多版本可到 docker hub 中查看。
可能用到的 docker 命令
启动/停止 docker
$ systemctl start docker $ systemctl stop docker
浏览本地 docker 镜像
$ docker images
显示 docker 容器
# 显示所有 docker 容器 $ docker ps -a # 显示正在运行的 docker 容器 $ docker ps
启动/停止 docker 容器
$ docker start [container_id] $ docker stop [container_id] # 实例一个容器后,该容器就会有一个独一无二的 id,敲击 `docker ps -a` 可看到。
查看容器中的日志
$ docker logs [container_id]
进入/退出容器
$ docker exec -it [container_id] bash # 你需要保证容器处于 running 状态 # 退出容器用 `exit`
删除镜像/容器
# 删除镜像。你需要确保没有容器使用这个镜像。 $ docker rmi [image_id] # 删除容器。你需要确保容器处于 stop 状态。 $ docker rm [container_id]
卸载 docker
$ rpm -qa | grep docker | xargs -n1 yum remove -y
以上是一些常用的 docker 命令,足以应付日常状况。如果遇到特殊情况,就不得不找百度啦。
还不快抢沙发