windows下 MySQL的表名大小写 移植到Linux 区分大小写



问题描述:

    MySQL 表名在windows下是不区分大小写的,将MySQL 脚本script文件导入MySQL后表名也会自动转化为小写,结果将数据库导出放到linux服务器中使用时就出错了。因为在linux下表名区分大小写而找不到表



问题分析:

MySQL数据库的表名在Linux系统下是严格区分大小写的,在Windows系统下开发的程序移植到Linux系统下,如果程序中SQL语句没有严格按照大小写访问数据库表,就可能会出现找不到表的错误。

解决方法:

windows:

在MySQL的配置文件my.ini中在[mysqld]节下 添加一行:
        lower_case_table_names = 0
        其中 0:区分大小写,1:不区分大小写

   注意:在修改完my.ini配置文件之后,需要重启mysql服务才能生效 

Linux:

编辑/etc/my.cnf文件,在[mysqld]节下 添加 lower_case_table_names 参数,并设置相应的值

sudo vi /etc/my.cnf

lower_case_table_names= 0


建议:

但这个办法治标不治本,根本的解决办法是遵从跨平台开发的好的实践,例如SQL语句中的库名、表名、字段名等等要严格区分大小写,与数据库中的库名、表名、字段名的大小写完全匹配上,这样就会增强程序的可移植性。避免修改部署目标环境的配置,如果目标环境部署了其它的应用,就可能会造成其它应用不起作用。


注意Icon

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

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


 



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MySQL中,SQL语句的大小写敏感与操作系统和配置有关。在Windows系统下,默认情况下SQL语句是不区分大小写的,这意味着无论你使用大写还是小写字母编写SQL语句,MySQL都会将其解析为相同的语句。而在Linux系统下,默认情况下SQL语句是区分大小写的,所以在编写SQL语句时需要注意大小写的正确性。 然而,需要注意的是,虽然SQL语句本身可能不区分大小写,但数据库名、表名和列名在不同操作系统下的区分大小写规则可能不同。在Windows系统下,数据库名、表名和列名是不区分大小写的,而在Linux系统下,默认情况下是区分大小写的。因此,在编写SQL语句时,建议统一使用小写字母或数字,以避免不同操作系统下的兼容性问题和错误。 总结来说,为了保证SQL语句的可移植性和一致性,建议始终使用小写字母或数字编写数据库名、表名和列名,并且遵循统一的命名规范。这样可以避免因操作系统不同而导致的大小写敏感性问题。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [MySQL中SQL语句的大小写规则(表名、字段名、字段值区分大小写吗?)](https://blog.csdn.net/LYY1448019681/article/details/111617308)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值