起步
在 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 命令,足以应付日常状况。如果遇到特殊情况,就不得不找百度啦。


还不快抢沙发