centos7 docker搭建mysql 5.7 目录映射+允许远程连接+host网络模式
安装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网络模式相关推荐
- windows系统使用Docker搭建MySQL服务
windows系统使用Docker搭建MySQL服务 文章目录 windows系统使用Docker搭建MySQL服务 前题 一.安装docker 二.建立镜像 三.连接mysql 前题 请先在wind ...
- 用docker安装tomcat并实现目录映射端口映射输入ip地址测试网页连接
1.以CentOS7为例 2.先安装docker 3.再拉取tomcat 4.然后配置tomcat容器 一 .docker安装tomcat8并实现目录映射端口映射 安装docker,以免防止docke ...
- docker安装tomcat8并实现目录映射端口映射
以CentOS7为例, 先安装docker 再拉取tomcat 然后配置tomcat容器 docker安装tomcat8并实现目录映射端口映射 卸载旧版本 旧版本的 Docker 称为 docker ...
- 使用docker搭建mysql
使用docker搭建mysql 最近新换了电脑,本地没有mysql服务了,想了想,决定使用docker装个mysql服务. 1. 下载docker desktop 1.1 下载 点此下载docker ...
- 【收藏】使用Docker搭建MySQL服务
使用Docker搭建MySQL服务 https://www.cnblogs.com/sablier/p/11605606.html
- docker搭建mysql主从
前言 为什么要使用Docker搭建? 不管是使用源码安装还是离线安装,在服务器上安装一个mysql总会花费不少的时间,而且对于新人来说,中间稍不注意哪一步出错了就导致安装失败,我之前也是安装过2次才成 ...
- docker安装mysql 并挂载目录
docker安装mysql 并挂载目录 == 注意代码删除注释== 创建目录/tmp/mysql/data 创建目录/tmp/mysql/conf 挂载/tmp/mysql/data到mysql容器内 ...
- 解决使用Navicat等工具进行连接登录mysql的1130错误,无法使用Ip远程连接的问题(mysql为8.0版本)
解决使用Navicat等工具进行连接登录mysql的1130错误,无法使用Ip远程连接的问题(mysql为8.0版本) 参考文章: (1)解决使用Navicat等工具进行连接登录mysql的1130错 ...
- linux 怎么登陆mysql数据库连接_Linux系统下实现远程连接MySQL数据库的方法教程
前言 最近在工作中遇到了这个需求,估计搞了一个多小时才把这个远程连接搞好.一台本地电脑,一台云服务器,都是linux系统.下面来看看详细的介绍: 步骤 1.在服务器端开启远程访问 首先进入mysql数 ...
最新文章
- 2021-2027年中国医疗美容市场研究及前瞻分析报告
- 有查看自己dian nao mi |W| ma 的软件
- 2-02字符编码的演化
- Python Tkinter 常用控件空间位置摆放
- html css js 实战案例_使用html+css+js实现弹球游戏
- 全国计算机等级考试题库二级C操作题100套(第30套)
- OD debug matlab,OllyDebug基本使用方法
- HDU 1231.最大连续子序列-dp+位置标记
- vmware10中开启Intel VT-x
- McAfee:僵尸网新威胁远甚Conficker
- java夏令时问题呈现
- 基因编辑技术在农业中的应用综述
- 金戈铁马 Android NDK 实战篇:男人之间的那些事
- 关于requests.exceptions.SSLError: HTTPSConnectionPool(host='XXX', port=443)问题
- Python实现PDF(图片版)水印的去除
- scratch3.0键盘无法输入文字或修改指令中的数字的快速解决办法
- 禁用Windows Defender Antivirus Service,让你文件正常运行
- 【Interview###】华为、中兴嵌入式(C)笔试题
- 工作心路历程系列1:华为校招面试+实习经历+工作经历
- 微信游戏《全民炫舞》开发公司h3d2 engine和QQ炫舞2 布料系统技术介绍