linux 下 mysql默认表_linux环境下mysql默认是区分表名大小写的
在linux環(huán)境下,mysql默認(rèn)表明是區(qū)分大小寫的,我們可以查看全局變量發(fā)現(xiàn):
mysql> show variables like 'lower%';
+------------------------+-------+
| Variable_name | Value |
+------------------------+-------+
| lower_case_file_system | OFF |
| lower_case_table_names | 0 |
+------------------------+-------+
2 rows in set (0.00 sec)
lower_case_file_system? 是一個(gè)只讀參數(shù),無法被修改,這個(gè)參數(shù)是用來告訴你在當(dāng)前的系統(tǒng)平臺下,是否對文件名大小寫敏感。
lower_case_table_names: 此參數(shù)不可以動態(tài)修改,必須重啟數(shù)據(jù)庫
lower_case_table_names=0 ?表名存儲為給定的大小和比較是區(qū)分大小寫的
lower_case_table_names = 1 ?表名存儲在磁盤是小寫的,但是比較的時(shí)候是不區(qū)分大小寫
lower_case_table_names=2, 表名存儲為給定的大小寫但是比較的時(shí)候是小寫的
當(dāng)在表明區(qū)分大小寫的清空下我們混用大小寫是會報(bào)錯(cuò)的,如下:
mysql> show tables like 'black%';+-------------------------+
| Tables_in_exam (black%) |
+-------------------------+
| black_unit |
| blacklist |
+-------------------------+
2 rows in set (0.00sec)
mysql> select * fromBlacklist;
ERROR1146 (42S02): Table 'exam.Blacklist' doesn't exist
解決辦法:
如果直接修改的話是會報(bào)錯(cuò)的,全局只讀變量不可以修改。
mysql> set global lower_case_table_names=1;
ERROR1238 (HY000): Variable 'lower_case_table_names' is a read only variable
最終解決辦法:
1.? ?修改/etc/my.cnf, [mysqld]下面加一行:
lower_case_table_names=1
如下:
2.重啟mysql服務(wù)并且查看全局變量的值
mysql> show variables like 'lower%';+------------------------+-------+
| Variable_name | Value |
+------------------------+-------+
| lower_case_file_system | OFF |
| lower_case_table_names | 1 |
+------------------------+-------+
2 rows in set (0.00 sec)
3.再次驗(yàn)證是否區(qū)分大小寫:
mysql> select * fromBLACKLIST;
Emptyset (0.00 sec)
至此配置成功!
總結(jié)
以上是生活随笔為你收集整理的linux 下 mysql默认表_linux环境下mysql默认是区分表名大小写的的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java程序猿面试问缺点怎么回答_JAV
- 下一篇: go 返回mysql数组_Go基础之--