設定mysql表名不區分大小寫

2022-04-08 04:37:34 字數 1328 閱讀 5104

設定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...