宽为限 紧用功 功夫到 滞塞通
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。