目录
问题一、Public Key Retrieval is not allowed
问题二、连接MySQL时,报Access denied for user
一、docker安装MySQL镜像
搜索images
docker search mysql
我配置了阿里云镜像加速器,找不到mySQL镜像.
由于不知道名原因很多国内拉取镜像都下架了docker镜像导致找不到MySQL镜像;
拉取MySQL镜像
docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/mysql:8.0
拉取MySQL镜像成功。
二、数据挂载
创建本地目录用于挂载mysql数据和配置
mkdir -p /root/mysql/data /root/mysql/logs /root/mysql/conf
在/root/mysql/conf中创建 *.cnf 文件
touch my.cnf
创建容器,将数据,日志,配置文件映射到本机
docker run -p 3306:3306 --name mysql -v /root/mysql/conf:/etc/mysql/conf.d -v /root/mysql/logs:/logs -v /root/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=yourpassword -d swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/mysql:8.0
docker run
:这是创建新容器的 Docker 命令。-p 3306:3306
:这将容器内部的 MySQL 服务端口(3306)映射到宿主机的同一端口,允许您从宿主机或其他网络中的机器访问 MySQL 服务。--name mysql
:这为新容器指定了一个名称,这里是mysql
。-v /root/mysql/conf:/etc/mysql/conf.d
:这将宿主机上的/root/mysql/conf
目录挂载到容器内部的/etc/mysql/conf.d
目录,用于存储 MySQL 配置文件。-v /root/mysql/logs:/logs
:这将宿主机上的/root/mysql/logs
目录挂载到容器内部的/logs
目录,用于存储 MySQL 日志文件。-v /root/mysql/data:/var/lib/mysql
:这将宿主机上的/root/mysql/data
目录挂载到容器内部的/var/lib/mysql
目录,用于存储 MySQL 数据文件。这确保了数据的持久化,即使容器被删除,数据也不会丢失。-e MYSQL_ROOT_PASSWORD=
yourpassword:这设置了环境变量,用于定义 MySQLroot
用户的密码。请确保使用一个强密码来提高安全性。-d swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/mysql:8.0
:这指定了容器应在后台运行,并使用指定的 MySQL 镜像。这里的镜像路径指向华为云 SWR 上的 MySQL 8.0 镜像.
检查MySQL是否启动成功:
docker ps -a