mysql8.0 lower_case_table_names 大小写敏感设置问题解决

 更新时间:2023年09月12日 09:20:45   作者:吹牛不交税  
在默认情况下,这个变量是设置为0的,以保持向前兼容性,如果将该变量设置为1,则表名和数据库名将被区分大小写,本文主要介绍了mysql8.0 lower_case_table_names 大小写敏感设置问题解决,感兴趣的可以了解一下

lower_case_table_names=1 表示 mysql 是不区分大小写的

lower_case_table_names=0 表示 mysql 是区分大小写的

根据网上资料得知mysql8.0之后,lower_case_table_names 配置必须在安装好 MySQL 后,初始化 mysql 配置时才有效。一旦 mysql 启动后,再设置是无效的,而且启动报错。

需要重新初始化MySQL数据库,并且在初始化过程中,在初始化之前将lower_case_table_names = 1写入到my.cnf文件中

但是我都已经安装启动了,那就继续坑呗

1 在修改配置之前,请先把 mysql 服务停止

systemctl stop mysqld.service

2 删除错误日志

为了方便查看 mysql 的错误日志,可以先将 /var/log/mysqld.log 删除。我第二次尝试时不删除日志也没问题。

rm /var/log/mysqld.log

[root@iZbp19o1a0ypknm0yq2tifZ /]# systemctl stop mysqld.service
[root@iZbp19o1a0ypknm0yq2tifZ /]# rm /var/log/mysqld.log
rm:是否删除普通文件 "/var/log/mysqld.log"?y

3 递归删除 /var/lib/mysql 目录下面的内容

cd /var/lib/mysql #进入目录

rm -rf * #递归删除

[root@iZbp19o1a0ypknm0yq2tifZ /]# cd /var/lib/mysql
[root@iZbp19o1a0ypknm0yq2tifZ mysql]# ls
auto.cnf       binlog.index  ca.pem           client-key.pem     #ib_16384_1.dblwr  ibdata1       #innodb_temp  mysql.ibd           private_key.pem  server-cert.pem  sys       undo_002
binlog.000001  ca-key.pem    client-cert.pem  #ib_16384_0.dblwr  ib_buffer_pool     #innodb_redo  mysql         performance_schema  public_key.pem   server-key.pem   undo_001
[root@iZbp19o1a0ypknm0yq2tifZ mysql]# rm -rf * 
[root@iZbp19o1a0ypknm0yq2tifZ mysql]# ls
[root@iZbp19o1a0ypknm0yq2tifZ mysql]#

4 删除原目录,创建数据库目录并授权

rm -rf /var/lib/mysql

上面将已存在的数据库目录 /var/lib/mysql 删除,下面将手动创建一个空目录且进行授权

进入/var/lib 目录,创建目录:

cd /var/lib
mkdir mysql

赋权:

chown -R mysql:mysql mysql

查看赋权是否成功:ll|grep mysql

[root@iZbp19o1a0ypknm0yq2tifZ lib]# ll|grep mysql
drwxr-x--x   2 mysql  mysql   4096 2月  28 15:32 mysql
drwxr-x---   2 mysql  mysql   4096 9月  14 02:29 mysql-files
drwxr-x---   2 mysql  mysql   4096 9月  14 02:29 mysql-keyring

5 配置 lower_case_table_names

下面的命令

vim /etc/my.cnf

配置文件中加上 lower_case_table_names=1 即可。 #是否对sql语句大小写敏感,1表示不敏感

我是直接用sftp下载my.cnf修改,然后再上传覆盖的

另外,我有自定义目录,所以我的my.cnf文件里 凡是 /mnt/mysql8data 的都替换为 /var/lib

6 初始化MySql

默认安装目录应该是下面的命令

mysqld --defaults-file=/etc/my.cnf --initialize --user=mysql --basedir=/var/lib/mysql --datadir=/var/lib/mysql

启动服务:

systemctl start mysqld.service
systemctl status mysqld.service

7 登录 MySql并修改密码

查初始密码并复制出来,fzue;+r=9hjP 就是我的密码

cat /var/log/mysqld.log |grep temp

[root@iZbp19o1a0ypknm0yq2tifZ lib]# cat /var/log/mysqld.log |grep temp
2023-02-28T08:45:48.759373Z 6 [Note] [MY-010454] [Server] A temporary password is 
generated for root@localhost: fzue;+r=9hjP
[root@iZbp19o1a0ypknm0yq2tifZ lib]#

用初始密码登录:mysql -uroot -p

修改密码:alter user 'root'@'localhost' identified by '密码';

用Navicat测试还不能登录,还需要刷新host

use mysql;
update user set host = '%' where user ='root';
flush privileges;

8 参考以前写的文章重新修改mysql数据目录

转到链接文章中第7点开始修改。

https://www.jb51.net/database/297966enh.htm

到此这篇关于mysql8.0 lower_case_table_names 大小写敏感设置问题解决的文章就介绍到这了,更多相关mysql 大小写敏感 内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • master and slave have equal MySQL server UUIDs 解决方法

    master and slave have equal MySQL server UUIDs 解决方法

    使用rsync配置了大量mysql,省去了大量编译和配置的时间,随逐个修改master和slave服务器的my.cnf,后,发现数据不能同步
    2013-07-07
  • 两种方法实现mysql分组计数,范围汇总

    两种方法实现mysql分组计数,范围汇总

    这篇文章主要介绍了两种方法实现mysql分组计数,范围汇总,文中示例代码非常详细,帮助大家更好的理解和学习,感兴趣的朋友可以了解下
    2020-07-07
  • MySQL的几种安装方式及配置问题小结

    MySQL的几种安装方式及配置问题小结

    这篇文章主要介绍了MySQL的几种安装方式及配置,然后在文章底部给大家介绍了安装过程中的问题总结,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2017-07-07
  • 监听mysql表内容变化 mysql开启binlog

    监听mysql表内容变化 mysql开启binlog

    这篇文章主要给大家介绍了关于监听mysql表内容变化,mysql开启binlog的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用mysql具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-08-08
  • MySQL将一个字段中以逗号分隔的取出来形成新的字段实现

    MySQL将一个字段中以逗号分隔的取出来形成新的字段实现

    这篇文章主要介绍了MySQL将一个字段中以逗号分隔的取出来形成新的字段实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-10-10
  • 详解MySQL8.0​ 字典表增强

    详解MySQL8.0​ 字典表增强

    这篇文章主要介绍了MySQL8.0​ 字典表增强的相关资料,帮助大家更好的理解和学习MySQL,感兴趣的朋友可以了解下
    2020-08-08
  • MySQL分区之指定各分区路径详解

    MySQL分区之指定各分区路径详解

    mysql分区后每个分区成了独立的文件,虽然从逻辑上还是一张表其实已经分成了多张独立的表,下面这篇文章主要给大家介绍了关于MySQL分区之指定各分区路径的相关资料,需要的朋友可以参考下
    2022-04-04
  • MySQL查询随机数据的4种方法和性能对比

    MySQL查询随机数据的4种方法和性能对比

    从MySQL随机选取数据也是我们最常用的一种发发,其最简单的办法就是使用”ORDER BY RAND()”,本文介绍了包括ORDER BY RAND()的4种获取随机数据的方法,并分析了各自的优缺点。
    2014-04-04
  • 简单谈谈MySQL数据透视表

    简单谈谈MySQL数据透视表

    这篇文章主要介绍了简单谈谈MySQL数据透视表的相关资料,需要的朋友可以参考下
    2019-08-08
  • 一次mysql迁移至OceanBase操作实战记录

    一次mysql迁移至OceanBase操作实战记录

    经过一段时间的学习,我对OceanBase有了一些基本的了解,这篇文章主要介绍了一次mysql迁移至OceanBase操作实战记录,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2025-12-12

最新评论