本文主要是介绍Docker一行命令安装MySQL,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1 前言
在Linux系统中安装MySQL数据库是一件繁琐的事情,经常遇到各种问题,浪费大量时间。Docker的出现很好的解决这个问题,下面然我们来学习如何在Docker中用一行命令安装MySQL。
2 安装Docker
这里以CentOS系统为例,步骤非常简单。更多安装方法请访问:官方安装文档。
2.1 卸载老版本
sudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine
2.2 安装yum
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
2.3 安装docker
sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
2.4 启动docker
sudo systemctl start docker
3 安装MySQL
1 创建一个本地目录,用于映射容器内的MySQL数据文件。docker本质上是一个虚拟容器,一旦容器被销毁,所有数据都会被删除,因此需要一个本地目录来保存容器内的MySQL数据文件。
mkdir -p /home/mysql57/
2 使用Docker命令安装MySQL,如果本地没有mysql:5.7的镜像,会自动下载安装,等待完成即可,如下图,一行命令就安装成功了。
docker run -d --name mysql57 --network=host --restart=always --privileged=true -v /home/mysql57/data:/var/lib/mysql -v /etc/localtime:/etc/localtime:ro -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7
3 命令讲解
# -d 后台运行mysql容器
# --name mysql57:创建的容器名称
# --network=host:容器直接使用宿主机的网络,配置本项后-p参数无效,会直接占用宿主机的端口
# -p 33066:3306:指定宿主机端口与容器端口映射关系
# --restart=always:总是跟随docker启动
# --privileged=true:获取宿主机root权限
# -v /home/mysql57/data:/var/lib/mysql:挂载文件,宿主机目录 : 容器目录
# -v /etc/localtime:/etc/localtime:ro :让容器的时钟与宿主机时钟同步,避免时区的问题,ro是read only的意思,就是只读。
# -e MYSQL_ROOT_PASSWORD=123456:环境变量传参
# mysql:5.7 启动的镜像名称
4 连接MySQL
4.1 查看容器
docker ps -a
4.2 进入容器,设置远程连接
# 进入mysql容器
docker exec -it <container_id> /bin/bash
# 进入mysql
mysql -uroot -p
# 允许root远程连接
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'YOUR_PASSWORD' WITH GRANT OPTION;
# 刷新权限
mysql> flush privileges;
4.3 远程连接
如下图,连接成功。
5 删除容器
如图,删除容器后,安装的MySQL就不存在了,但是本地映射的数据文件夹仍然存在,不会造成数据丢失。可以再次安装MySQL并映射该目录,就可以继续使用之前的数据了。
docker stop mysql57
docker rm mysql57
这篇关于Docker一行命令安装MySQL的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!