linux部署MySQL数据表名大小写问题
来源:互联网 发布:车范根数据 编辑:程序博客网 时间:2024/06/07 08:44
项目在本地跑的时候没问题,但是部署在Linux后,就报错找不到相关数据表,但是查看数据库后发现明明存在,这是因为大小写问题。Linux对大小写是敏感的,尤其在开发quartz模块的时候,quartz内部查询数据的语句是大写的,如QRTZ_LOCKS、QRTZ_TRIGGERS等这些内部表。
解决方案:其实很简单,让它对大小写不敏感即可,即在Linux上的MySQL的配置文件/etc/my.cnf中加入一行代码:
lower_case_table_names=1。my.cnf文件在下方会给完整代码。
注意事项:
虽然简单,但是有一些需要注意的地方:
1.lower_case_table_names参数详解:
其中 0:区分大小写,1:不区分大小写
MySQL在Linux下数据库名、表名、列名、别名大小写规则是这样的:
1、数据库名与表名是严格区分大小写的;
2、表的别名是严格区分大小写的;
3、列名与列的别名在所有的情况下均是忽略大小写的;
4、变量名也是严格区分大小写的;
MySQL在Windows下都不区分大小写。
如果想在查询时区分字段值的大小写,则:字段值需要设置BINARY属性,设置的方法有多种:
A、创建时设置:
CREATE TABLE T(
A VARCHAR(10) BINARY
);
B、使用alter修改:
ALTER TABLE`tablename` MODIFY COLUMN `cloname` VARCHAR(45) BINARY;
C、mysql tableeditor中直接勾选BINARY项。
2.修改完配置之后,一定要重启数据库:
service mysqld restart
3.再次查询数据表,这时发现不管查询SQL语句中的表名是大写还是小写都提示找不到此表了。
原因是修改配置之后,会导致原来的大写的表名无法识别,这一点要特别注意。
解决办法是:
(1)在修改配置之前一定先将所有表的表结构和表数据导出做备份;
(2)删除原来的表;
(3)修改配置;
(4)将表结构和表数据导入。
按照上面的步骤操作之后,再次查询数据表,表名就不区分大小写了。
配置完整版代码:my.cnf
- linux部署MySQL数据表名大小写问题
- mysql 数据表大小写敏感问题
- thinkphp无法识别数据表名大小写问题
- thinkphp 中数据表名的大小写问题
- java 数据库名、数据表名和字段名大小写问题
- mysql表名大小写问题
- linux下mysql 表名区分大小写问题
- 解决Linux下mysql区分表名大小写的问题
- linux下mysql表名大小写敏感问题
- Linux环境中MySQL表名大小写问题
- linux下mysql表名大小写敏感问题
- linux mysql 大小写问题
- MySQL数据表大小写
- MySql表名大小写的问题
- mysql数据库表名大小写问题
- MySql表名的大小写问题
- MySql表名的大小写问题
- MySQL表名、字段、查询大小写问题
- 创建 pod 库的子库
- yii 2.0 admin和角色控制组件
- JAVA调用Rest服务接口
- 代码块
- android下拉刷新框架UltraPtr使用
- linux部署MySQL数据表名大小写问题
- 高性能服务器之IO复用方式比较
- 那些url设计是利于网站seo优化
- pyspark-hdfs数据操作
- java设置一段代码执行的超时时间的简单方法
- 阿里云配置小程序证书 https总结
- sphinx增量索引配置
- python 导入MySQLdb模块 出现的问题 并测试
- Android的WebView加载的Html输入框被手机键盘挡住解决