docker安装mysql环境
1、拉取mysql镜像
先拉取mysql的镜像,可以在docker的镜像仓库找到不同的TAG标签的版本链接
我选择的是5.7docker pull mysql:5.7
2、配置mysql
创建mysql目录,用于存放mysql相关配置及数据。
3、运行mysql容器
docker run -p 3309:3306 --name test_mysql -v /home/hlp/mysql/conf:/etc/mysql/conf.d -v /home/hlp/mysql/logs:/logs -v /home/hlp/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
如果执行完后,报错:WARNING: IPv4 forwarding is disabled. Networking will not work.
- 在/etc/sysctl.conf文件
vi /etc/sysctl.conf
末尾添加“net.ipv4.ip_forward=1” - 重启network服务
systemctl restart network
- 查看正在运行的容器
docker ps
- 停止正在运行的容器
docker stop CONTAINER ID
,CONTAINER ID是容器ID - 删除错误的容器
docker rm CONTAINER ID
- 重新运行刚刚的mysql容器
命令说明: - -p 3309:3306 将容器的3306端口映射到主机的3309端口
- –name 重命名
- -v /home/hlp/mysql/conf:/etc/mysql/conf.d 将主机/home/hlp/mysql/conf挂载到容器的/etc/mysql/conf(宿主机目录是自己随意创建的,而容器目录是固定的)
- -v /home/hlp/mysql/logs:/logs 将主机/home/hlp/mysql/logs挂载到容器/logs
- -v /home/hlp/mysql/data:/var/lib/mysql 将主机/home/hlp/mysql/data挂载到容器/var/lib/mysql
- -e MYSQL_ROOT_PASSWORD=123456 初始化root用户的密码
- -d 挂后台运行
启动完成后,查看运行状态docker ps
查看/home/hlp/mysql/data目录下会看到有数据
4、进入容器
输入docker exec -i -t test_mysql bash
进入容器bash,接着输入mysql -uroot -p
再输入root用户密码123456
进入mysql
进入到mysql命令行就可以用sql语句操作了。退出mysql命令行输入exit
,退出容器也是用exit
5、使用Navicat工具连接mysql
如果连接信息都填写正确,但提示1045,则需要进入mysql查看一下远程连接权限
在mysql命令行输入select host,user from user;
查看host下面有没有%,我的表中已经有%数据行,如果没有就需要添加
1.进行授权:GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
允许root用户使用password从任何主机连接到mysql服务器。
2.然后需要执行FLUSH PRIVILEGES;
刷新刚刚的授权设置
3.最后退出mysql命令行和mysql容器,重启mysql容器,再次连接就成功了。
一个镜像文件如何启动多个容器
只需要将映射的端口和名称修改即可。如启动两个mysql容器