Docker安装Mysql
前言
虽然 docker 安装 mysql 不是一个很好的方案,但是为了个人使用方便,使用 docker 安装 mysql 还是没什么问题的。
本文为了方便,我们直接通过yum方式安装。所以,我们在安装之前需要电脑可以联网,不然我们这种方式是安装不了的。
当然,你也可以自行下载mysql镜像,然后再通过 docker 安装,不过这不在本文的讨论范围
一、拉取镜像
1 | 拉取镜像 |
二、查看镜像
使用以下命令来查看是否已安装了 mysql镜像
1 | docker images |
三、运行镜像
1 | docker run -p 3306:3306 --name mysql --restart=always --privileged=true \ |
命令含义:
1 | -p 3306:3306:指定宿主机端口与容器端口映射关系 |
四、查看正在运行的容器
1 | 查看正在运行的容器 |
这个时候如果显示的是up状态,那就是启动成功了。如果是restarting,说明是有问题的。我们可以查看日志:docker logs -f mysql
可能会发现:
~Failed to access directory for –secure-file-priv. Please make sure that dir`
此时如果我们执行第五步也会报错:
Error response from daemon: Container xxx is restarting, wait until the cont。。。
此时我们需要执行第六步。
五、查看容器内部
1 | docker exec -it mysql /bin/bash |
六、修改mysql配置
映射的my.cnf
新增 my.cnf 填写一下内容
1 | [client] |
将my.cnf存放到 映射配置目录 宿主机”/www/data/server/mysql/conf”中,权限改为777
七、重启mysql服务,使其配置生效
1 | docker restart mysql |
八、设置docker启动时启动mysql
1 | docker update mysql --restart=always |
九、重启mysql
1 | docker restart mysql |
十、授权远程访问
不进行授权直接登陆的话会报错的如图:
10.1 进入容器内部
1 | docker exec -it mysql /bin/bash |
10.2 登陆mysql
1 | mysql -u root -p |
此时我们使用mysql客户端连接服务器是失败的,因为默认的root不具有远程连接的权限。
执行命令(root改为自己的密码)
1 | // %:表示从任何主机连接到mysql服务器 |
十一、无法访问的其他处理方式
检查端口是否开启
1 | # 查看防火墙开放的端口信息 |