网站备案新增域名,私人做网站需要多少钱,网站的推广方式包括,濮阳网格化app写在前面
简介#xff1a; lower_case_table_names 是mysql设置大小写是否敏感的一个参数。
1.参数说明#xff1a; lower_case_table_names0 表名存储为给定的大小和比较是区分大小写的 lower_case_table_names 1 表名存储在磁盘是小写的#xff0c;但是比较的时候是不区…写在前面
简介 lower_case_table_names 是mysql设置大小写是否敏感的一个参数。
1.参数说明 lower_case_table_names0 表名存储为给定的大小和比较是区分大小写的 lower_case_table_names 1 表名存储在磁盘是小写的但是比较的时候是不区分大小写 lower_case_table_names2 表名存储为给定的大小写但是比较的时候是小写的unix,linux下lower_case_table_names默认值为 0 .Windows下默认值是 1 .Mac OS X下默认值是 2 lower_case_table_names最奇葩的地方就在于不同系统下的默认值是不一样的。不同的默认值设定就可能会导致同一个.sql文件中建表SQL语句在不同系统中失效从而在数据库中例如在Ubuntu系统下出现单词相同但分别是大写和小写的两张数据表更可怕的是可能出现同名的外键从而产生错误。
2.查看方法
# 进入mysql命令行 执行以下任一语句查看
show variables like lower_case_table_names;
select lower_case_table_names; 在Ubuntu下用DOCKER启动MySQL8如果表格的大小写确实很重要的话必须在第一次运行docker run时添加上--lower_case_table_names1 这个配置项
docker run -it -d --name mysql --nethost -v /root/mysql/data:/var/lib/mysql \
-v /root/mysql/config:/etc/mysql/conf.d \
-e MYSQL_ROOT_PASSWORD123456 \
-e TZAsia/Shanghai mysql \
--lower_case_table_names1如果MYSQL启动起来了数据库中内容改变了并且容器与Ubuntu中有映射的话等出现大小写问题是就没有办法再修改 --lower_case_table_names的值了。
采用停止并删除原有容器用docker run创建新容器添加上 --lower_case_table_names但只要你的映射(-v)与之前的容器是一样的这样做是希望新容器中仍然能有原容器中创建的数据库与数据表那新容器会在启动后可以生成ID几秒钟发生错并退出如果你在docker run中还添加了 --restartalways那就会看到容器一直在不停从重启。
采用网上给出的修改my.conf文件的方式添加 --lower_case_table_names1再新建容器的方式只适合DOCKER MySQL5.7对DOCKER MySQL8的容器会依然是无效的。
[mysqld]
pid-file /var/run/mysqld/mysqld.pid
socket /var/run/mysqld/mysqld.sock
datadir /var/lib/mysql
secure-file-priv NULL
lower_case_table_names1
最后的结论就是如果在Ubuntu或Linux环境中启用DOCKER MySQL8就务必记得在第一次启动也就是MySQL8数据库最“干净”时候添加上--lower_case_table_names1