Linux MySQL大小写敏感问题与 docker cp 命令

12 篇文章 0 订阅
9 篇文章 0 订阅
宽为限 紧用功 功夫到 滞塞通

MySQL大小写规则

MySQL在Linux下数据库名、表名、列名、别名大小写规则是这样的:

1、数据库名与表名是严格区分大小写的;
2、表的别名是严格区分大小写的;
3、列名与列的别名在所有的情况下均是忽略大小写的;
4、变量名也是严格区分大小写的;

MySQL在Windows下都不区分大小写。

避免这个问题的一种办法是以Docker 启动mysql容器时添加 --lower_case_table_names=1 参数启动。缺省地在 Windows 中这个选项为 1 ,在 Unix 中为 0。如 果 lower_case_table_names 为 1 ,MySQL 将在存储与查找时将所有的表名转换为小写字线。(从 MySQL 4.0.2 开始,这个选项同样适用于数据库名。) 注意,当你更改这个选项时,你必须在启动 mysqld 前首先将老的表名转换为小写字母。
也可以通过在MySQL的配置文件mysqld.cnf 中增加一行:

lower_case_table_names = 1

其中 0:区分大小写,1:不区分大小写

docker cp 命令

$ docker cp CONTAINER:FILEPATH LOCALFILEPATH
$ vi LOCALFILEPATH
$ docker cp LOCALFILEPATH CONTAINER:FILEPATH

可以将本地的mysqld.cnf 文件拷入到容器中,可以将容器中的文件拷出,解决了用

docker exec:只能对运行中的容器操作文件
docker run: 加-v映射文件目录出来 参数只能创建新容器
这两个痛点,重新将修改正确的cnf文件拷贝回container。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值