准备在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之后。