mysql 设置大小写_mysql修改大小写参数注意事项
原由:數據庫中原本參數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數據庫中
來自 “ ITPUB博客 ” ,鏈接:http://blog.itpub.net/31447263/viewspace-2157309/,如需轉載,請注明出處,否則將追究法律責任。
總結
以上是生活随笔為你收集整理的mysql 设置大小写_mysql修改大小写参数注意事项的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: android surfaceview
- 下一篇: MySQL数据查询新人须知