时间:2021-05-23
项目迁移数据库, 重新启动后, 报错"T_AAA表不存在", 但数据库中可以查看到该表并有数据
通过重装系统与数据库, 确认系统与数据库纯净, 排除系统和数据库的原因
使用同一方式恢复两天前和一天前的数据备份, 同样不能启动项目, 排除数据内容的原因
使用mysqldump和导出SQL文件两种方式, 恢复一天前的数据, 同样不能启动项目, 排除恢复方式的原因
以上方式基本是运维人员参与, 等技术总监参与观察项目报错后, 猛然发现是表名大小写的问题, 通过测试最终确定原因:
使用rpm包安装数据库, 自动初始化时将lower_case_table_names设置为0, 表名大小写敏感, 数据库中为小写, 代码中为大写
MySQL8.0及以上版本, 只能在初始化的时候设置lower-case-table-names参数, 无法通过修改my.cnf实现(在my.cnf中增加配置会报错)
初始化数据库不需要卸载整个MySQL重装, 只需要使用mysqld命令即可
base_dir等用户组应为mysql, linux下命令为:
chown -R mysql.mysql MySQL数据路径(即base_dir)linux下递归创建目录
mkdir -p mysql/lib/mysql-filesMySQL重新初始化
mysqld -initialize --lower-case-table-names=1MySQL8.0以上, 需要先创建用户再赋权
create user 'test'@'%' identified by 'test';-- with option 可以把权限赋予其它用户grant all privileges on test.* to 'test'@'%' with option;到此这篇关于详解记录MySQL中lower_case_table_names的坑的文章就介绍到这了,更多相关MySQL lower_case_table_names内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
将全局变量lower_case_table_names设置为1实验:1.lower_case_tables_name=0的情况(Linux默认)直接启动mysq
linux下mysql默认是要区分表名大小写的。mysql是否区分大小写设置是由参数lower_case_table_names决定的,其中:1)lower_c
在MySQL当中,有可能遇到表名大小写敏感的问题。其实这个跟平台(操作系统)有关,也跟系统变量lower_case_table_names有关系。下面总结一下,
mysql设置不区分大小写windows下到安装mysql的目录,修改my.ini文件在文件最后一行加上下面一句话lower_case_table_names=
一个项目里面用了layui,简直无数个坑...这里先记录一个行点击事件的坑,后面慢慢补充.初始化表格完成后利用事件给table(定位table需要在HTML代码