使用 docker 安装 mysql
安装mysql
- cmd(以管理员身份运行)
- 查看docker版本,是否安装成功:docker --version
- 拉去docker mysql镜像: docker pull mysql:latest (国内镜像daocloud.io/library库下载 docker pull daocloud.io/library/mysql:5.7)
- 查看镜像是否存在:docker images
- 启动mysql镜像:docker run -itd --name mysql-test -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql
- -itd 表示启动交互式会话模拟linux tty 但是docker将会分离并且在后台运行
- --name mysql-test 表示容器名称
- -p 3306:3306 表示从docker的服务器端口(后)映射到主机的端口(前)
- -e MYSQL_ROOT_PASSWORD=123456 表示配置用户名和密码(root用户密码123456)
- mysql 表示需要启动的镜像名称
- 查看mysql服务是否在docker运行:docker ps
docker run -itd --restart=always --name mysql-8.0.0 -p 3306:3306 -v D:/dockervolumes/mysql_8_0_0_data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:8.0.0
mysql大小写敏感问题
在docker安装MySQL后,进行项目连接数据库,发现查询的表不存在了:Table 'XXXX.XXXX' doesn't exist
Linux下:
- 数据库名与表名是严格区分大小写的;
- 表的别名是严格区分大小写的;
- 列名与列的别名在所有的情况下均是忽略大小写的;
- 变量名也是严格区分大小写的;
Windows下:
- 都不区分大小写
lower_case_table_names 参数说明
参数值 | 解释 |
---|---|
0 | 使用CREATE TABLE或CREATE DATABASE语句指定的大小写字母在硬盘上保存表名和数据库名。名称比较对大小写敏感。在大小写不敏感的操作系统如windows或Mac OS x上我们不能将该参数设为0,如果在大小写不敏感的文件系统上将–lowercase-table-names强制设为0,并且使用不同的大小写访问MyISAM表名,可能会导致索引破坏。 |
1 | 表名在硬盘上以小写保存,名称比较对大小写不敏感。MySQL将所有表名转换为小写在存储和查找表上。该行为也适合数据库名和表的别名。该值为Windows的默认值。 |
2 | 表名和数据库名在硬盘上使用CREATE TABLE或CREATE DATABASE语句指定的大小写字母进行保存,但MySQL将它们转换为小写在查找表上。名称比较对大小写不敏感,即按照大小写来保存,按照小写来比较。注释:只在对大小写不敏感的文件系统上适用! innodb表名用小写保存。 |
Docker 部署 MySql 并修改为大小写不敏感
-
直接在Docker启动的时候,添加参数,设置为对小写不敏感
docker run -itd --name mysql-test -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql --lower_case_table_names=1
-
Docker容器内进行修改(将文件var/lib/mysql 挂载出来可直接在宿主机修改)
- 进入 docker 容器 MySQL: docker exec -it mysql /bin/bash
- 进入配置文件目录: cd /etc/mysql/conf.d
- 需要用到vim(安装过的请跳过)
- apt-get update
- apt-get install vim
- 启动编辑配置文件: vim mysqld.cnf
- 在[mysqld]下添加 lower_case_table_names=1
- 退出重启
折腾了半天还是无法通过修改配置忽略大小写问题。索性删掉容器重新启动(直接在Docker启动的时候,添加参数,设置为对小写不敏感)
后面遇到再研究吧!!!
参考:
http://t.zoukankan.com/aixing-p-13327251.html
https://stackoverflow.com/questions/51803216/lower-case-table-names-settings-in-mysql-8-0-12
本文来自博客园,作者:weichangk,转载请注明原文链接:https://www.cnblogs.com/weichangk/p/15473251.html
分类:
docker
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix