安装docker

sudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-enginesudo yum install -y yum-utilssudo yum-config-manager \--add-repo \https://download.docker.com/linux/centos/docker-ce.reposudo yum install -y docker-ce docker-ce-cli containerd.iosudo systemctl start docker
sudo systemctl enable docker

拉取mysql 5.7镜像

docker pull mysql:5.7

启动容器

拟对数据和配置文件做本地目录映射到:/data/mysql。

本地映射mysql/conf时,需要先创建volume,再绑定。否则会发现映射的位置,conf文件夹下是空的。

其它两个文件夹,mysql/logs,mysql/data倒是会被自动创建,并正常包含相应文件,此处原因不明。

mkdir -p /data/mysql/confdocker volume create --driver local \--opt type=none \--opt device=/data/mysql/conf \--opt o=bind \mysql_vol

运行容器:

docker run \
--name=mysql \
--net=host \
--restart=always \
-v mysql_vol:/etc/mysql \
-v /data/mysql/logs:/var/log/mysql \
-v /data/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
-e MYSQL_ROOT_HOST=% \
-d mysql:5.7 \
--character-set-server=utf8mb4 \
--collation-server=utf8mb4_unicode_ci \

此时已经可以用root账户远程连接了。

创建用户

进入容器:

docker exec -it mysql /bin/bash

进入mysql:

mysql -uroot -p

输入密码即可。

USE mysql;
CREATE USER 'user'@'%' IDENTIFIED BY 'P@ssW0rd';
GRANT ALL ON *.* TO 'user'@'%';
FLUSH PRIVILEGES;

大坑

启动容器时,一开始设置参数-e MYSQL_ROOT_PASSWORD 包含特殊字符$。

症状1:远程连接时提示密码错误

Access denied for user 'root'@'192.168.x.x' (using password: YES)

症状2:本地登录时root明文密码可以登录,密文无法登录

mysql -uroot -p
回车,输入密码,提示错误;

mysql -uroot -pPassword$
回车即可进入。

结论

一直以为是权限、配置的问题,造成无法连接。

折腾了大半天才发现:不要给mysql的密码设置$符号…密码中去除$后,一切都正常了。

参考

https://hub.docker.com/_/mysql

centos7 docker搭建mysql 5.7 目录映射+允许远程连接+host网络模式相关推荐

  1. windows系统使用Docker搭建MySQL服务

    windows系统使用Docker搭建MySQL服务 文章目录 windows系统使用Docker搭建MySQL服务 前题 一.安装docker 二.建立镜像 三.连接mysql 前题 请先在wind ...

  2. 用docker安装tomcat并实现目录映射端口映射输入ip地址测试网页连接

    1.以CentOS7为例 2.先安装docker 3.再拉取tomcat 4.然后配置tomcat容器 一 .docker安装tomcat8并实现目录映射端口映射 安装docker,以免防止docke ...

  3. docker安装tomcat8并实现目录映射端口映射

    以CentOS7为例, 先安装docker 再拉取tomcat 然后配置tomcat容器 docker安装tomcat8并实现目录映射端口映射 卸载旧版本 旧版本的 Docker 称为 docker ...

  4. 使用docker搭建mysql

    使用docker搭建mysql 最近新换了电脑,本地没有mysql服务了,想了想,决定使用docker装个mysql服务. 1. 下载docker desktop 1.1 下载 点此下载docker ...

  5. 【收藏】使用Docker搭建MySQL服务

    使用Docker搭建MySQL服务 https://www.cnblogs.com/sablier/p/11605606.html

  6. docker搭建mysql主从

    前言 为什么要使用Docker搭建? 不管是使用源码安装还是离线安装,在服务器上安装一个mysql总会花费不少的时间,而且对于新人来说,中间稍不注意哪一步出错了就导致安装失败,我之前也是安装过2次才成 ...

  7. docker安装mysql 并挂载目录

    docker安装mysql 并挂载目录 == 注意代码删除注释== 创建目录/tmp/mysql/data 创建目录/tmp/mysql/conf 挂载/tmp/mysql/data到mysql容器内 ...

  8. 解决使用Navicat等工具进行连接登录mysql的1130错误,无法使用Ip远程连接的问题(mysql为8.0版本)

    解决使用Navicat等工具进行连接登录mysql的1130错误,无法使用Ip远程连接的问题(mysql为8.0版本) 参考文章: (1)解决使用Navicat等工具进行连接登录mysql的1130错 ...

  9. linux 怎么登陆mysql数据库连接_Linux系统下实现远程连接MySQL数据库的方法教程

    前言 最近在工作中遇到了这个需求,估计搞了一个多小时才把这个远程连接搞好.一台本地电脑,一台云服务器,都是linux系统.下面来看看详细的介绍: 步骤 1.在服务器端开启远程访问 首先进入mysql数 ...

最新文章

  1. 2021-2027年中国医疗美容市场研究及前瞻分析报告
  2. 有查看自己dian nao mi |W| ma 的软件
  3. 2-02字符编码的演化
  4. Python Tkinter 常用控件空间位置摆放
  5. html css js 实战案例_使用html+css+js实现弹球游戏
  6. 全国计算机等级考试题库二级C操作题100套(第30套)
  7. OD debug matlab,OllyDebug基本使用方法
  8. HDU 1231.最大连续子序列-dp+位置标记
  9. vmware10中开启Intel VT-x
  10. McAfee:僵尸网新威胁远甚Conficker
  11. java夏令时问题呈现
  12. 基因编辑技术在农业中的应用综述
  13. 金戈铁马 Android NDK 实战篇:男人之间的那些事
  14. 关于requests.exceptions.SSLError: HTTPSConnectionPool(host='XXX', port=443)问题
  15. Python实现PDF(图片版)水印的去除
  16. scratch3.0键盘无法输入文字或修改指令中的数字的快速解决办法
  17. 禁用Windows Defender Antivirus Service,让你文件正常运行
  18. 【Interview###】华为、中兴嵌入式(C)笔试题
  19. 工作心路历程系列1:华为校招面试+实习经历+工作经历
  20. 微信游戏《全民炫舞》开发公司h3d2 engine和QQ炫舞2 布料系统技术介绍

热门文章

  1. 为何单片机程序不用加载到RAM
  2. 商品管理系统商品分页,增删改查的实现增加购物车的功能Cart
  3. 2022 年最受瞩目的新特性 CSS @layer 到底是个啥?
  4. system pause 作用
  5. Android app中将图片保存到本地相册并自命名相册名的代码方法
  6. 后台学习六---ajaxFileupload文件上传下载
  7. MS Project 2013 修改项目名称
  8. 华为手机如何设置重要通知_华为手机必须关闭的4个功能,让你的手机永久告别卡顿,再用5年...
  9. 游戏开发-2022-10-17-疯狂弹球初级版
  10. 蓝牙小车(可调速版)