mysql修改大小写参数注意事项
短信预约 -IT技能 免费直播动态提醒
原由:数据库中原本参数lower_case_table_names的值为0,应开发要求需要修改为不区分大小写,即修改为1。但是修改完之后,发现本来建立的大写字母的表查不到。
修改过程
1,在参数文件中修改lower_case_table_names=1
2,重启mysql服务
问题:发现修改完之后,本来数据库中有的大写字母的表查不到了
测试:
1,首先设置库为区分大小写
mysql> show variables like 'lower_case_table_names';
+------------------------+-------+
| Variable_name | Value |
+------------------------+-------+
| lower_case_table_names | 0 |
+------------------------+-------+
1 row in set (0.00 sec)
2,创建2张有大写字母的表
mysql> create table Tt(id int);
Query OK, 0 rows affected (0.10 sec)
mysql> create table tT(id int);
Query OK, 0 rows affected (0.03 sec)
mysql> show tables;
+----------------+
| Tables_in_test |
+----------------+
| Tt |
| tT |
+----------------+
2 rows in set (0.00 sec)
3,修改参数 /etc/my.cnf 中设置 lower_case_table_names = 1
重启数据库
查看此时参数的值
mysql> show variables like 'lower_case_table_names';
+------------------------+-------+
| Variable_name | Value |
+------------------------+-------+
| lower_case_table_names | 1 |
+------------------------+-------+
1 row in set (0.00 sec)
4,查看数据库
mysql> select * From tT;
ERROR 1146 (42S02): Table 'test.tt' doesn't exist
mysql> select * From Tt ;
ERROR 1146 (42S02): Table 'test.tt' doesn't exist
问题是:
发现当修改lower_case_table_names = 1后,之前创建的表名都不识别了。
结论:
1、不能随意修改数据库的大小写,否则大写表名会认不出来。
2、lower_case_table_names参数的修改是非动态的,必须重启数据库。
如何修改大小写格式:
如果原来所建立的数据库都是大小写敏感的,想要转换为对大小写不敏感,主要需要进行以下三步。
1,将数据库数据通过mysqldump导出
2,在my.cnf文件中更改lower_case_table_names =1,并重启mysql数据库。
3,将导出的数据导入mysql数据库中
修改过程
1,在参数文件中修改lower_case_table_names=1
2,重启mysql服务
问题:发现修改完之后,本来数据库中有的大写字母的表查不到了
测试:
1,首先设置库为区分大小写
mysql> show variables like 'lower_case_table_names';
+------------------------+-------+
| Variable_name | Value |
+------------------------+-------+
| lower_case_table_names | 0 |
+------------------------+-------+
1 row in set (0.00 sec)
2,创建2张有大写字母的表
mysql> create table Tt(id int);
Query OK, 0 rows affected (0.10 sec)
mysql> create table tT(id int);
Query OK, 0 rows affected (0.03 sec)
mysql> show tables;
+----------------+
| Tables_in_test |
+----------------+
| Tt |
| tT |
+----------------+
2 rows in set (0.00 sec)
3,修改参数 /etc/my.cnf 中设置 lower_case_table_names = 1
重启数据库
查看此时参数的值
mysql> show variables like 'lower_case_table_names';
+------------------------+-------+
| Variable_name | Value |
+------------------------+-------+
| lower_case_table_names | 1 |
+------------------------+-------+
1 row in set (0.00 sec)
4,查看数据库
mysql> select * From tT;
ERROR 1146 (42S02): Table 'test.tt' doesn't exist
mysql> select * From Tt ;
ERROR 1146 (42S02): Table 'test.tt' doesn't exist
问题是:
发现当修改lower_case_table_names = 1后,之前创建的表名都不识别了。
结论:
1、不能随意修改数据库的大小写,否则大写表名会认不出来。
2、lower_case_table_names参数的修改是非动态的,必须重启数据库。
如何修改大小写格式:
如果原来所建立的数据库都是大小写敏感的,想要转换为对大小写不敏感,主要需要进行以下三步。
1,将数据库数据通过mysqldump导出
2,在my.cnf文件中更改lower_case_table_names =1,并重启mysql数据库。
3,将导出的数据导入mysql数据库中
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341