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