centos 环境 docker上安装mysql 及其数据挂载到宿主机

本文介绍了如何在 CentOS 7.0 环境的 Docker 中安装 MySQL 5.7,包括如何从163镜像库下载MySQL镜像,如何启动和配置MySQL容器,以及如何将数据挂载到宿主机,避免数据丢失。文章详细记录了安装过程中的步骤和遇到的问题,适合初学者参考。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近做DBA,入职第二周老大就说让我在一台测试服务器上安装配置MySQL,惊恐之前工作一年半也就是用用sql select、update一下数据,其他基本没用过,然后一脸懵逼。不过老板交代的事总要做,然后这几天就开始学习Linux,了解docker和mysql安装。

 

 

 

经过各种查询,发现网上没有对新手的docker安装mysql一个完整的文档,大神们都是哪里报错说哪里,对于新手哪里看得懂啊,这次完成了mysql安装后觉得闲的没事,就写一下这次安装经过和大家一起分享下害羞

 

 

 

这次安装MySQL ,环境是centos 7.0,  系统和docker是另外的运维同事部署安装好的,所以我就不分享这部分安装(其实是不知道害羞

 

 

 

下边开始进入正题啦大笑,首先在docker上部署MySQL前,我们要下载MySQL 镜像:

 

 

命令: docker pull MySQL(这个命令不会限制版本,会按照docker上mysql最新版本进行下载,如果要限定mysql版本,命令是:docker pull MySQL:5.7 这里我们下载的是MySQL 5.7版本)这里作为小白我出过一次错,拉取了MySQL 8.0安装,然后navicat远程各种连不上,大神们都说8.0密码验证方式不同要修改,经各种修改都没连上,后来直接放弃了卸载后重装了5.7版安静

 

 

<think>好的,我现在需要帮助用户在CentOS 7上使用Docker安装MySQL。首先,我得回忆一下Docker的基本操作步骤,以及安装MySQL的流程。根据用户提供的引用内容,有几个步骤可能需要整合。 首先,用户需要安装Docker。不过根据引用内容,用户可能已经安装Docker,但不确定是否需要先安装Docker。根据引用1到5,似乎有些引用提到的是直接拉取MySQL镜像,所以可能用户已经有Docker环境。不过为了全面,可能需要先检查Docker是否安装,如果没有的话,指导如何安装。但根据问题,用户可能更关注的是使用Docker安装MySQL,所以可能不需要详细说明Docker安装,但最好还是确认一下。 接下来,拉取MySQL镜像。根据引用5,可以使用docker pull mysql,也可以指定版本,比如mysql:5.7或者mysql:8.0。比如引用1用的是centos/mysql-57-centos7,而引用2和5提到了mysql:8.0。这里可能需要说明不同镜像的选择。用户可能需要选择官方镜像还是其他版本,比如centos/mysql-57-centos7是CentOS维护的MySQL 5.7镜像,而mysql:tag是官方镜像。可能推荐使用官方镜像,比如mysql:5.7或mysql:8.0。 然后,运行容器。运行命令时需要注意参数,比如端口映射数据挂载、设置root密码、环境变量等。根据引用中的例子,比如docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag。需要说明各个参数的作用,比如-e MYSQL_ROOT_PASSWORD设置密码,-p映射端口,-v挂载数据卷以防止数据丢失。 之后,进入容器进行配置,比如设置远程访问。根据引用3和4,可以使用docker exec -it mysql bash进入容器内部,然后登录MySQL,执行SQL命令,比如创建用户、授权等。例如,在MySQL 8.0中可能需要修改认证插件,或者允许root远程登录。 另外,可能需要开放防火墙端口,比如CentOS 7的firewalld需要开放3306端口,或者关闭防火墙测试。这点在引用中没有提到,但实际使用中可能会遇到问题,所以需要包含这一步骤。 还要注意数据持久化,使用-v参数将容器内的数据目录挂载宿主机,这样即使容器删除,数据也不会丢失。比如-v /my/own/datadir:/var/lib/mysql。 另外,用户可能需要知道如何查看容器日志,检查MySQL是否正常运行,使用docker logs命令。 现在需要将步骤整合成一个清晰的流程: 1. 安装Docker(如果尚未安装)。 2. 拉取MySQL镜像。 3. 运行容器,设置密码、端口映射数据卷。 4. 进入容器配置MySQL,允许远程连接。 5. 防火墙设置。 6. 测试连接。 还需要注意不同MySQL版本的差异,比如MySQL 8.0默认使用caching_sha2_password,旧版本客户端可能不支持,需要更改为mysql_native_password,或者在创建用户时指定插件。 根据引用2,安装MySQL8.0时可能需要设置远程登录,可能需要执行类似以下命令: CREATE USER 'root'@'%' IDENTIFIED BY 'password'; GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION; FLUSH PRIVILEGES; 而在MySQL 5.7中可能不需要修改认证插件,但同样需要授权用户从远程访问。 最后,生成相关问题,比如如何设置数据持久化,如何备份数据,如何处理权限问题等。 现在需要检查是否所有步骤都覆盖到了,并且语法正确,比如docker命令的参数是否正确,环境变量是否正确,以及是否需要额外的配置步骤。</think>### 在 CentOS 7 上使用 Docker 安装 MySQL 的步骤 #### 1. **安装 Docker(若未安装)** ```bash # 更新系统包 sudo yum update -y # 安装 Docker 依赖 sudo yum install -y yum-utils device-mapper-persistent-data lvm2 # 添加 Docker 仓库 sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo # 安装 Docker 引擎 sudo yum install -y docker-ce docker-ce-cli containerd.io # 启动并设置 Docker 开机自启 sudo systemctl start docker sudo systemctl enable docker ``` #### 2. **拉取 MySQL 镜像** - **选择版本**:默认拉取最新版(如 MySQL 8.0): ```bash docker pull mysql ``` - **指定版本**(如 MySQL 5.7): ```bash docker pull mysql:5.7 # 官方镜像 # 或使用 CentOS 维护的镜像(引用[1]) docker pull centos/mysql-57-centos7 ``` #### 3. **运行 MySQL 容器** ```bash docker run -d \ --name mysql-container \ -p 3306:3306 \ -e MYSQL_ROOT_PASSWORD=your_password \ -v /宿主机数据目录:/var/lib/mysql \ mysql:tag ``` - **参数说明**: - `-p 3306:3306`:将容器 3306 端口映射宿主机。 - `-e MYSQL_ROOT_PASSWORD`:设置 root 用户密码[^2][^5]。 - `-v`:挂载数据卷以实现持久化[^3]。 #### 4. **配置远程访问** - **进入容器**: ```bash docker exec -it mysql-container /bin/bash # 引用[3][^4] ``` - **登录 MySQL**: ```bash mysql -u root -p ``` - **授权远程访问**(以 MySQL 8.0 为例): ```sql CREATE USER 'root'@'%' IDENTIFIED BY 'your_password'; GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION; FLUSH PRIVILEGES; ``` - **MySQL 8.0 需修改认证插件**(可选): ```sql ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'your_password'; ``` #### 5. **防火墙配置(若需远程访问)** ```bash sudo firewall-cmd --zone=public --add-port=3306/tcp --permanent sudo firewall-cmd --reload ``` #### 6. **验证连接** - 使用客户端工具(如 `mysql -h 宿主机IP -P 3306 -u root -p`)测试连接。 --- ###
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值