docker安装mysql5.7
- 写在前面
- 安装mysql5.7
- 修改my.cnf
- 方法1:.在容器内修改
- 方法2:直接映射配置文件(自己未测试)
- 写在最后
写在前面
自从学会docker安装软件之后,发现它确实给我带来了很大的便利,安装一些软件都方便了很多,当然仅限于开发自用,如果是生产环境使用还是要谨慎配置的,废话不多说,转入正题。
安装mysql5.7
我是已5.7版本为例,请选择自己合适的版本下载
下载镜像
docker pull mysql:5.7
首次启动
docker run -d -p 3306:3306 --name mysql -v /mysqldata/mysql/log:/var/log/mysql -v /mysqldata/mysql/data:/var/lib/mysql -v /mysqldata/mysql/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7
一个自己用的mysql就这么安装好了
部分参数说明:
-e MYSQL_ROOT_PASSWORD=root:指定mysql的root密码为root。
docker ps 查看是否安装成功 。
然后就用navcat连接测试下看能不能连上,我这测试时没问题的。
这里值得说一点:我没有配置开启远程连接的权限也能正常访问,然后我查看了一下用户表,发现已经有了一条可以远程访问的root用户,我不知道是不是mysql后面更新了加了一个默认的远程root用户还是docker安装的mysql里才有这个,又或者是docker在安装的时候自动加上的。
修改my.cnf
上面安装完成之后,就能正常使用了, 这里说下如果想修改my.cnf的修改方法吧!
方法1:.在容器内修改
首先是要进入docker容器内
docker exec -it 容器ID /bin/sh
然后使用vi编辑器去编辑
vi /etc/my.cnf
然后你会发现,特么的容器里竟然没有vi命令,还要自己安装命令,
用网上正常的在线安装命令
apt-get install vim
要命的是容器不识别apt-get命令,本来我还想再安装一个apt-get命令,突然间醒悟,不能一条道走到黑,条条大路通罗马。
然后从网上查询到可以再宿主机上编辑好之后再复制到容器中。
首先把文件从容器中复制出来:
docker cp 容器名称:/etc/my.cnf /mysqldata/
编辑好之后再复制回去:
docker cp /mysqldata/my.cnf 容器名称:/etc/
最后重启容器
docker restart mysql
方法2:直接映射配置文件(自己未测试)
找一个相同版本的my.cnf,在首次启动的时候指定参数
-v /mysqldata/mysql/conf/my.cnf:/etc/my.cnf
如果没有的话可以先用上面的命令安装一个mysql,把文件复制出来,然后再删除了重新指定配置文件安装。
后面就可以直接在宿主机上修改文件内容,然后重启mysql就行了。
这里要注意,里面的路径什么的都是已容器内为主,不是宿主机上的路径。
写在最后
如果写的哪里有问题,请多多指正。