設定mysql表名不區分大小寫,mysql版本:
[root@web ~]# mysql -v
mysql ver 14.14 distrib 5.7.18, for linux (x86_64) using editline wrapperlower_case_table_names引數詳解:
lower_case_table_names=1
其中0:區分大小寫,1:不區分大小寫
查詢當前設定:
mysql> show variables like '%lower%';
+------------------------+-------+
| variable_name | value |
+------------------------+-------+
| lower_case_file_system | off |
| lower_case_table_names | 1 |
+------------------------+-------+
2 rows in set (0.01 sec)網上大多數的帖子的修改流程如下:
1、用root登入,修改 /etc/my.cnf
2、在[mysqld]節點下,加入一行: lower_case_table_names=1
3、重啟mysql : service mysql restart
在這個版本的mysql下有個坑(其他版本沒試過,不知道有沒有),如果之前有大寫的表,那麼修改引數後改表會提示不存在,而且也無法修改,你的應用就掛了。。。
原因如下:
如果在lower_case_table_names=0情況下已經匯入了大量的表和資料,表名有大寫,有小寫,此時再換成lower_case_table_names=1會出錯。
解決辦法是在lower_case_table_names=0下將表名全部改成小寫的;如果有資料庫名稱中存在大寫字母,也要在此時改名,改名方法為新建乙個小寫的資料庫, 再改表名:
假設源庫名是』abc』,目標庫名是』abc』,
首先建立目標庫
create database abc;獲取所有源庫的表名
use information_schema;
select table_name from tables where table_schema='abc';然後按照以下命令乙個個修改
rename table abc.t1 to abc.t1;乙個個執行下來之後表就轉到新的庫裡面了.
—注意abc.t1中一定全是小寫字母;
全部改名之後,再設定lower_case_table_names=1,重啟mysql
設定mysql表名不區分大小寫
檢視mysql版本 root localhost logs mysql v mysql ver lower case table names引數詳解 lower case table names 1 其中0 區分大小寫,1 不區分大小寫 查詢當前設定 mysql show variables lik...
MySQL表名不區分大小寫的設定方法
原來linux下的mysql預設是區分表名大小寫的,通過如下設定,可以讓mysql不區分表名大小寫 1 用root登入,修改 etc my.cnf 2 在 mysqld 節點下,加入一行 lower case table names 1 3 重啟mysql即可 其中 lower case table...
MySQL表名不區分大小寫的設定方法
原來linux下的mysql預設是區分表名大小寫的,通過如下設定,可以讓mysql不區分表名大小寫 1 用root登入,修改 etc my.cnf 2 在 mysqld 節點下,加入一行 lower case table names 1 3 重啟mysql即可 其中 lower case table...