红茶的个人站点

  • 首页
  • 专栏
  • 开发工具
  • 其它
  • 隐私政策
Awalon
Talk is cheap,show me the code.
  1. 首页
  2. 开发工具
  3. 正文

将 MySQL 修改为大小写不敏感

2025年8月9日 9点热度 0人点赞 0条评论

使用 MyCat 时发现一些问题,MyCat 底层使用 Druid 生成 SQL,导致创建的表名和列名都是大写,列名本身是不区分大小写的,所以问题不大。但表名的问题在不同的平台略有不同。在 Windows 中,MySQL 默认大小写不敏感。但在 Linux 中 MySQL 默认大小写敏感。这就导致如果通过 MyCat 执行的 SQL 使用的表名是小写,在 Linux 的 MySQL 数据库中创建的表名却是大写,此时通过 MyCat 执行 insert xxx 时就会报错,提示 xxx 表找不到。

要解决这个问题的方法是将 Linux 平台的 MySQL 设置为表名大小写不敏感。

对于 MySQL 8,如果是新安装的,直接修改配置即可,如果是已经存在的,需要删除数据目录,并且重新实例化 MySQL。

此操作会导致数据丢失,因此需要先备份数据库。

备份数据库:

mysqldump -uroot -p --all-databases > ~/download/sql/all.sql

停止服务:

sudo systemctl stop mysqld

备份数据目录:

sudo mkdir /backup
sudo cp -R /var/lib/mysql /backup/mysql_data

修改 mysql 配置文件中的大小写敏感设置:

lower_case_table_names=1

这一步操作必须在重新初始化 MySQL 实例之前完成。

删除数据目录:

sudo rm -rf /var/lib/mysql/*

重新初始化 MySQL 实例:

sudo mysqld --initialize --user=mysql --datadir=/var/lib/mysql

修改目录权限:

sudo chown -R mysql:mysql /var/lib/mysql

启动服务:

sudo systemctl start mysqld

临时登录密码可以从日志文件获取:

sudo cat /var/log/mysql/mysqld.log | grep password

使用临时密码登录并修改 root 密码:

mysql> alter user 'root'@'localhost' identified by 'Mysql@123';
Query OK, 0 rows affected (0.02 sec)

安全加固:

sudo mysql_secure_installation

重新导入数据:

mysql> source /home/icexmoon/download/sql/all.sql;

本作品采用 知识共享署名 4.0 国际许可协议 进行许可
标签: MySQL
最后更新:2025年8月9日

魔芋红茶

加一点PHP,加一点Go,加一点Python......

点赞
< 上一篇

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

COPYRIGHT © 2021 icexmoon.cn. ALL RIGHTS RESERVED.
本网站由提供CDN加速/云存储服务

Theme Kratos Made By Seaton Jiang

宁ICP备2021001508号

宁公网安备64040202000141号