记录我在Docker 中一步一步搭建Mysql 数据库存开发环境
准备在docker下来搭建mysql开发环境玩玩,当作学习笔记。搭建环境是:win10 企业版,docker desktop 19.03.8,mysql 5.7,Windows PowerShell
首先从 https://hub.docker.com/_/mysql/#! 可以查看到支持的各种mysql 版本的镜像,如图,这里选了mysql 5.7版。

下载镜像 docker pull mysql:5.7
创建容器 docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql
进入容器 docker exec -it mysql bash
登录mysql mysql -uroot -p123456

看到了欢迎信息,登录成功!执行一行简单命令看看 show databases;

ok,没有问题,现在就可以使用 Navicat 等可视化工具连接使用了,如果你命令使用的很牛逼,也可以直接开始敲命令。
到此你以为就大功告成了吗?其实远没有,下面开始踩坑之路:

看这报错竟然表不存在,mysql在windows下表名是不区分大小写的,在linux下是区分大小写的。因为使用docker的是linux镜像,所以报了这个错。
接下来开始解决这个问题,如果没有使用docker那很简单,直接修改配置文件就好了,在docker下稍微麻烦一点。
使用 show global variables like '%lower_case%'; 查看一下默认配置 lower_case_table_names=0,如图:

现在需要把 lower_case_table_names 改成 1 。这个时候需要先 Ctrol +D退出到docker 容器

然后通过使用 linux 的vim 工具来修改配置文件,这个时候会发又需要安装 vim ,直接执行 apt-get install vim 安装还会报错 “Unable to locate package vim”。
需要先执行 "apt-get update" 更新完一堆包后,再执行 “apt-get install -y vim” ,稍等片刻,等待安装完成,因为我这里是来回切换了几个步骤没有把安装 vim的过程截图保存下来,就上不了图了。
下面开始修改配置文件
执行 vi /etc/mysql/mysql.conf.d/mysqld.cnf 命令出现下图

这里敲 E 选择 Edit anyway 进入下图

在红框中加入 lower_case_table_names=1 ,编辑完之后,不要乱操作,很容易让界面死掉。然后 Esc 键,注意看左下角,再输入 : wq 保存并退出
到此,配置文件修改完毕,Ctrol +D退出mysql容器,再重新启动容器 docker restart mysql 让配置生效,进入mysql后执行 show global variables like '%lower_case%';

可以看到值已经是 1 了,这时再来执行一条查询语句验证有没有问题

ok,终于成功了,到此几番周折终于大功告成。
我觉得Docker是世界上伟大的发明,有了docker实在太方便了,需要什么就装什么,当然前提是你需要熟悉docker之后。
记录我在Docker 中一步一步搭建Mysql 数据库存开发环境的更多相关文章
- Docker 快速搭建 MySQL 5.6 开发环境
使用 Docker 快速搭建一个 MySQL 5.6 开发环境 步骤 获取镜像 docker pull mysql:5.6 启动容器,密码 123456,映射 3306 端口 docker run - ...
- 【搭建开发环境】在 Windows XP 中参与开源项目,搭建 git 和 cygwin 开发环境
引言 只有一台 Windows XP 家用机,却想在诸如 Git@OSC 之类的开源社区参与开发,本文提供一个入门级的开发环境搭建指引. 涉及工具:Eclipse,EGit,Cygwin. 欢迎来到 ...
- mac系统中搭建apache+mysql+php的开发环境,安装mysql后,登录报错:mac ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
php新手在mac系统中搭建apache+mysql+php的开发环境(按照这篇博客来操作的:http://my.oschina.net/joanfen/blog/171109?fromerr=xvC ...
- docker中使用源码方式搭建SRS流媒体服务
一.背景 搭建流媒体服务的方式一般会采用nginx+rtmp和srs服务两种,前者是nginx加上插件所用,而后者是专门为了为了流媒体而生,在这一节中我们将从头搭建srs流媒体服务 二. 运行环境 为 ...
- 使用 Docker 秒速搭建多版本 PHP 开发环境
目录 目标 下载 代理设置 配置环境 PHP 7.2.x,占用本地端口 8081 PHP 5.6.x,占用本地端口 8082 端口映射 local.php72.com -> 127.0.0.1: ...
- 一步一步了解Cocos2dx 3.0 正式版本开发环境搭建(Win32/Android)
cocos2d-x 3.0发布有一段时间了,作为一个初学者,我一直觉得cocos2d-x很坑.每个比较大的版本变动,都会有不一样的项目创建方式,每次的跨度都挺大…… 但是凭心而论,3.0RC版本开始 ...
- PHP引号转义中解决POST,GET,Mysql数据自动转义问题
在处理mysql和GET.POST的数据时,常常要对数据的引号进行转义操作. PHP中有三个设置可以实现自动对’(单引号),”(双引号),\(反斜线)和 NULL 字符转转. PHP称之为魔术引号,这 ...
- Kettle ETL 来进行mysql 数据同步——试验环境搭建(表中无索引,无约束,无外键连接的情况)
今天试验了如何在Kettle的图形界面(Spoon)下面来整合来mysql 数据库中位于不同数据库中的数据表中的数据. 试验用的数据表是customers: 第三方的数据集下载地址是:http://w ...
- win7下docker环境搭建nginx+php-fpm+easyswoole开发环境
基础的环境已在文章nginx.php-fpm.swoole HTTP/TCP压测对比中搭建了,现在是在这个基础上在搭建easyswoole开发环境 主要要修改的地方是dnmp包里面的docker-co ...
随机推荐
- STL学习心得
STL的知识翻来复去,也就那么回事,但是真的想要熟练使用,要下一番功夫.无论是算法,还是STL容器,直白的说就是套路,然而对于一道题,告诉你是STL容器的题,让你套容器也绝非易事. 怎样使用容器,对于 ...
- varnish 项目实战
1.工作原理 在当前主流的Web服务架构体系中,Cache担任着越来越重要的作用.常见的基于浏览器的C/S架构,Web Cache更是节约服务器资源的关键.而最近几年由FreeBSD创始人之一Kamp ...
- awk调用date命令
创建文件date.awk: $ == { cmd = "\"" while (cmd | getline line) { print line } close(cmd) ...
- Shell简单实现多线程
一.目的 解决Shell脚本单线程下效率低下的问题 二.适用场景 需要在Linux系统执行同一项命令,但是针对不同的对象,例如PING检测主机,当然可以延展,只要是命令之间不会产生冲突就可以了 ...
- Spring官网阅读 | 总结篇
接近用了4个多月的时间,完成了整个<Spring官网阅读>系列的文章,本文主要对本系列所有的文章做一个总结,同时也将所有的目录汇总成一篇文章方便各位读者来阅读. 下面这张图是我整个的写作大 ...
- MySQL 入门(3):事务隔离
摘要 在这一篇内容中,我将从事务是什么开始,聊一聊事务的必要性. 然后,介绍一下在InnoDB中,四种不同级别的事务隔离,能解决什么问题,以及会带来什么问题. 最后,我会介绍一下InnoDB解决高并发 ...
- 【MySQL基础总结】索引的使用
索引的使用 概述 1.索引由数据库中一列或多列组合而成,其作用是提高对表中数据的查询速度 2.索引的优点是可以提高检索数据的速度 3.缺点是创建和维护索引需要耗费时间 4.所以索引可以提高查询速度,减 ...
- Excel:公式转数值
跨Workbook引用有些危险,有时要把公式转换为数值.修改频繁,有时也要把公式转换为数值. 方法一,选中区域,复制Ctrl+C,选择性粘贴Ctrl+Alt+V,数值V.方法二,选中区域,复制Ctrl ...
- Python --函数学习2
一.函数参数和返回值 --参数:负责给函数传递一些必要的数据或者信息 -形参(形式参数):在函数定义的时候用到的参数,没有具体值,只是一个占位符号 -实参(实际参数):在调用函数的时候输入的值 exa ...
- Linux中的vi编辑器使用
总是忘记,我就谢谢 touch XXX文件名 vi XXX文件名 敲击 i 进入编辑模式 敲击ESC 退出编辑模式 退出编辑模式后 输入:wq!保存并退出 输入:q!不保存退出 查看文件:cat XX ...