哪些网站可以免费做推广,网页游戏电脑版,wordpress 漏洞利用,做网站租服务器多少钱目录 前言1 Docker 运行mysql命令2 坑一#xff1a;无法读取/etc/mysql/conf.d目录的问题3 坑二#xff1a;/tmp/ibnr0mis 文件无法创建/写入的问题4 坑三#xff1a;Navicat 连接错误#xff08;1045-access denied#xff09;5 坑四#xff1a;MySQL 登录失败问题结语 … 目录 前言1 Docker 运行mysql命令2 坑一无法读取/etc/mysql/conf.d目录的问题3 坑二/tmp/ibnr0mis 文件无法创建/写入的问题4 坑三Navicat 连接错误1045-access denied5 坑四MySQL 登录失败问题结语 前言
在使用 Docker 容器化 MySQL 过程中遇到一系列常见问题是正常现象。通过以下步骤可以解决这些问题并成功搭建运行 MySQL 容器。
1 Docker 运行mysql命令
首先运行 MySQL 容器的命令如下对其中的参数进行详细说明
mysql容器启动
docker run \
--name mysql5.7 \
-p 3306:3306 \
-e MYSQL_ROOT_PASSWORD123456 \
-d \
-v ~/volumes/mysql5.7/data:/var/lib/mysql \
-v ~/volumes/mysql5.7/conf:/etc/mysql \
-v ~/volumes/mysql5.7/log:/var/log \
--restartalways mysql:5.7docker run: 启动一个新容器--name mysql5.7: 指定容器的名称为 mysql5.7-p 3306:3306: 将容器的 3306 端口映射到宿主机的 3306 端口允许通过该端口访问 MySQL 服务-e MYSQL_ROOT_PASSWORD123456: 设置 MySQL root 用户的密码为 123456-d: 在后台运行容器-v ~/volumes/mysql5.7/data:/var/lib/mysql: 将宿主机的 ~/volumes/mysql5.7/data 目录挂载到容器内的 MySQL 数据目录-v ~/volumes/mysql5.7/conf:/etc/mysql: 将宿主机的 ~/volumes/mysql5.7/conf 目录挂载到容器内的 MySQL 配置文件目录-v ~/volumes/mysql5.7/log:/var/log: 将宿主机的 ~/volumes/mysql5.7/log 目录挂载到容器内的 MySQL 日志目录--restartalways: 设置容器遇到错误时自动重启mysql:5.7: 使用 MySQL 5.7 版本的 Docker 镜像
2 坑一无法读取/etc/mysql/conf.d目录的问题 当运行 MySQL 容器时报错指示无法读取目录 /etc/mysql/conf.d。can‘t read dir of /etc/mysql/conf.d 。这通常是因为 MySQL 容器默认仅寻找特定目录但我们想要自定义配置目录。解决方法是通过挂载卷将我们的配置文件目录映射到容器内 MySQL 配置目录的路径上。
解决方法
停止并移除容器
docker stop mysql5.7
docker rm mysql5.7重新运行容器并指定配置目录
docker run --name mysql5.7 -p 3306:3306 -e MYSQL_ROOT_PASSWORD123456 -d \
-v /home/dockerv/mysql/data:/var/lib/mysql \
-v /home/dockerv/mysql/conf:/etc/mysql/conf.d \
-v /home/dockerv/mysql/log:/var/log \
--restartalways mysql:5.73 坑二/tmp/ibnr0mis 文件无法创建/写入的问题
can’t create/write to file ‘/tmp/ibnr0mis’,查看/tmp的权限果然是没有些权限此处不是宿主机的/tmp目录而是docker容器的/tmp目录将整个宿主机的整个docker目录设置为可读可写。MySQL 在容器内尝试在 /tmp 目录下创建文件时遇到权限问题。这可能是因为容器内部的 /tmp 目录权限受限。解决此问题需要更改宿主机 Docker 目录的权限。 解决方法
停止并移除容器
docker stop mysql5.7
docker rm mysql5.7更改宿主机 Docker 目录权限
chmod 777 -R /lib/docker # 根据实际情况修改路径4 坑三Navicat 连接错误1045-access denied
mysql启动起来了但是使用navicat连接报错1045-access denied for user root192…(using password:yes)尝试使用 Navicat 连接 MySQL 时遇到访问被拒绝的问题。这可能是由于 MySQL 服务器拒绝了 root 用户的连接请求需要在 MySQL 中修改配置以允许远程访问。 解决方法
进入 Docker 容器
docker exec -it mysql5.7 /bin/bash编辑 MySQL 配置文件
cd /etc/mysql/conf.d
vim my.cnf在 my.cnf 文件中添加或修改以下内容
[mysqld] bind-address0.0.0.0
5 坑四MySQL 登录失败问题
登录 MySQL 时出现访问被拒绝的错误这可能是由于权限设置不当导致 MySQL 忽略配置文件。 解决方法
修改配置文件权限
chmod 644 /etc/my.cnf进入 MySQL
docker exec -it mysql5.7 mysql -uroot -p重置 root 用户密码并刷新权限
FLUSH PRIVILEGES;
ALTER USER rootlocalhost IDENTIFIED BY 新密码;
FLUSH PRIVILEGES;结语
以上步骤详细解释了在使用 Docker 容器化 MySQL 过程中可能遇到的问题并提供了解决方法。正确遵循这些步骤可以成功搭建 MySQL 容器并解决连接和权限相关的常见问题。