Mysql的大小写敏感问题总结

之前对mysql大小写敏感的问题不太在意,直到在工作上碰到了bug,才意识到问题的不可忽略性,于是在这简要总结一下。

工作上碰到的问题回顾

使用sqoop命令从hive往mysql导数据:

sqoop export --connect "jdbc:mysql://172.16.xxx.xxxx:3306/database1?useUnicode=true&characterEncoding=utf-8" 
--username=root --password=root --table tablename1 
--update-key id --update-mode allowinsert 
--export-dir /user/hive/warehouse/database1.db/tablename1 
--input-fields-terminated-by '\t' 
--input-null-string '\\N' --input-null-non-string '\\N' -m1

命令执行成功,无任何报错。但是让人奇怪的是,hive表中的记录数和mysql表中的记录数对不上,hive中是1000条,但是mysql中是981条。

将两表join连接,查看哪些记录没匹配上,发现:

<
hive表id hive表text mysql表id mysql表text
R3700 aaaa NULL NULL
r3700 bbbb r3700 bbbb
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MySQL数据库的大小写敏感性可以根据配置进行设置。默认情况下,MySQL在Windows操作系统上是不区分大小写的,而在Unix和macOS上是区分大小写的。这是因为在Windows中,文件系统默认是大小写敏感的,而在Unix和macOS中,文件系统默认是大小写敏感的。因此,MySQL大小写敏感性与操作系统和配置有关。 如果想要将已建立的数据库和表从大小写敏感转换为不敏感,可以按照以下步骤进行: 1. 使用mysqldump命令将数据库数据导出。 2. 在my.cnf配置文件中将lower_case_table_names参数设置为1,并重启MySQL数据库。 3. 使用导出的数据将数据库数据导入到MySQL数据库中。 需要注意的是,对于大小写敏感的系统(如Windows和macOS),不能将lower_case_table_names参数设置为0。此外,在Linux默认情况下,数据库名和表名是大小写敏感的,而字段内容和列名是大小写敏感的。如果需要设置匹配字段值大小写敏感,可以使用binary标记或设置校对规则(collate)来实现。 总结起来,MySQL数据库的大小写敏感性可以通过配置文件和设置校对规则来进行控制。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [MySQL| MySQL大小写敏感问题](https://blog.csdn.net/u011479200/article/details/89002141)[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^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [【转】MySQL大小写敏感的解决方案](https://blog.csdn.net/C_chuxin/article/details/122471582)[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^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值