【DockeDesktop-MySQL镜像踩坑】

文章讲述了在DockerDesktop环境中配置MySQL镜像的过程,包括设置数据目录、配置文件、容器端口映射以及root用户密码。在遇到容器退出、路径不识别或权限问题时,作者提供了相应的解决方案,如使用完整路径、修改配置文件路径和更新root用户权限。最后,讨论了远程连接的测试和使用可视化工具Navicat进行管理的便利性。
摘要由CSDN通过智能技术生成

DockeDesktop-MySQL镜像踩坑

本地先创建好相关文件夹以及配置文件,my.conf复制粘贴以下内容。

[mysqld]
user=mysql
character-set-server=utf8
default_authentication_plugin=mysql_native_password
secure_file_priv=/var/lib/mysql
expire_logs_days=7
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
max_connections=1000

[client]
default-character-set=utf8

[mysql]
default-character-set=utf8

Alt

Docker

//搜索镜像
docker search mysql
//拉取镜像到本地
docker pull mysql:lastest
//运行mysql 设置容器与本地文件路径的对应关系,设置root用户密码
docker run -p 3306:3306 -p 33060:33060 --name mysqltest  -v /.../mydata/mysql/log:/var/log/mysql -v /.../mydata/mysql/data:/var/lib/mysql -v /.../mydata/mysql/config:/etc/mysql/conf.d:rw -e MYSQL_ROOT_PASSWORD=123456 -d mysql:latest
//查看已运行的容器
docker ps

DockerDesktop

  1. 下载: 官网
  2. 配置国内镜像源
"registry-mirrors": [
    "http://hub-mirror.c.163.com",
    "https://docker.mirrors.ustc.edu.cn",
    "https://registry.docker-cn.com"
  ]

在这里插入图片描述

  1. 搜索mysql镜像,下载==》docker search mysql

在这里插入图片描述
4.在本地镜像点击run,填写相关文件路径配置,以及root用户密码配置
以及容器名称。
在这里插入图片描述

5.我们就可以在容器仓库内看到已运行的容器了。
在这里插入图片描述

6.点击容器名称,可以看到启动成功的日志,我们点击终端Terminal。
在这里插入图片描述
7.连接到容器后台,切换mysql命令行并登陆root用户,查看初始化后的库信息,如果已经存在则不必修改,如不存在,需要修改user表中访问权限,%表示可以远程登录,并且是除服务器外的其他任何终端,任意IP都可登录。便于使用可视化工具navicat链接。

//切换mysql命令行
mysql -uroot -p123456
//展示初始化的数据库
SHOW DATABASES
//切换库
USE MYSQL;
//查看用户表信息
SELECT Host,User from user;
//更改root用户访问权限
UPDATE user set Host='%' Where User ='root';
//刷新权限
FLUSH PRIVILEGES;

在这里插入图片描述
8.最后测试下远程工具链接。
在这里插入图片描述

总结:可视化工具操作更简单便捷,其实也是执行的docker底层命令,使用DockerDesktop 和直接使用Docker命令还是有些不同点的。组合使用也不冲突,每一步其实都是对应的,先行动起来

问题

bug解决办法
Exited (1) 8seconds ago本地挂在目录配置m y.conf文件,或者通过DockerDesktop终端在里面编辑
The path /.../mydata/mysql/log is not shared from the host and is not known to Docker.没有使用完整的全路径导致Docker无法识别,配置全路径即可
mysqld: Can't read dir of '/etc/mysql/conf.d/' (OS errno 2 - No such file or directory) docker命令执行启动,因为mysql版本不同容器文件路径不同,需要在命令中指定/etc/mysql/conf.d/;用/etc/mysql启动会失败报错
Access denied for user ‘root‘@‘%‘ to database远程测试链接时被拒绝,通过查看user表,更改root用户的Host为"%"即可解决
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值