lower_case_table_names 从0修改为1的注意事项
7,946 total views, 1 views today
在工作中,最初创建MySQL时,使用默认的 lower_case_table_names =0 ,区分表名大小写。后续,为了使用方便,不区分表名大小写,要将lower_case_table_names设置为1。
那么,修改时要注意什么?
先明确的概念:
lower_case_table_names=0,那么t1和T1是两张表。
lower_case_table_names=1,t1和T1就是一张表,因为MySQL会将T1转换成t1。
场景1:表的数据量不多,比如10张以内。
1.直接将大写表名重名为小写表名 RENAME TABLE T1 TO t1;
2.修改配置文件 lower_case_table_names = 1
3.重启MySQL
场景2:需要将1个库或者多个库中的大写表名修改为小写表名
1.使用mysqldump导出每个库
1 2 3 4 |
mysqldump --databases db1 > db1.sql mysqldump --databases db2 > db2.sql ... mysqldump --databases dbx > dbx.sql |
2.删除相关的database
1 2 3 4 |
drop database db1; drop database db1; ... drop database dbx; |
3.修改配置文件 lower_case_table_names = 1
4.重启MySQL
5.导入备份到MySQL,由于lower_case_table_names = 1,导入时MySQL自动将大写表名转成小写表名存储到MySQL中。
1 2 3 4 |
mysql -uroot -pxxx <db1.sql mysql -uroot -pxxx <db1.sql ... mysql -uroot -pxxx <dbx.sql |