天天看點

mysql linux環境下表名區分大小寫問題

在linux環境下表名是區分大小寫的

問題

執行SHOW VARIABLES LIKE '%lowercasetable_names%' 輸出結果:

mysql linux環境下表名區分大小寫問題

其中 0:區分大小寫,1:不區分大小寫

解決辦法

在mysql的配置檔案中添加 lowercasetable_names=1

實際解決方式

  • 先查找mysql使用的配置檔案
  • 添加配置
  • 重新開機mysql
  • 檢視是否生效

查找mysql配置檔案

locate my.cnf 沒有找到

[root@iZblz0hZ mysql]# locate my.cnf
-bash: locate: command not found           

複制

正常情況使用locate my.cnf指令可以列出所有的my.cnf檔案

ps指令檢視是否使用了指定目錄的my.cnf 沒有找到

[root@iZbts0ohz0hZ ~]# ps aux|grep mysql|grep 'my.conf'           

複制

檢視mysql預設讀取my.cnf的目錄

[root@iZbpohz0hZ ~]# mysql --help|grep 'my.cnf'
                      order of preference, my.cnf, $MYSQL_TCP_PORT,
/etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/etc/my.cnf ~/.my.cnf           

複制

去對應的目錄中查找時,沒有找到。于是,在/etc目錄下建立my.cnf檔案,檔案中的内容為:

[mysqld]
character_set_server=utf8
init_connect='SET NAMES utf8'
basedir=/work1/soft/mysql
datadir=/work1/soft/mysql/data
socket=/work1/soft/mysql/mysql.sock
#設定忽略大小寫(簡單來說就是sql語句是否嚴格),預設庫名表名儲存為小寫, 不區分大小寫
lower_case_table_names=1
# 開啟ip綁定
#bind-address = 0.0.0.0
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/work1/soft/mysql/data/mysqld.pid
#指定用戶端連接配接mysql時的socket通信檔案路徑
[client]
socket=/work1/soft/mysql/mysql.sock
default-character-set=utf8           

複制

重新開機mysql

執行service mysql restart

檢視是否生效

SHOW VARIABLES LIKE '%lowercasetable_names%';

mysql linux環境下表名區分大小寫問題

可以看到修改成功。