Mysql中大小寫敏感問題導(dǎo)致的MySql Error 1146 Tabel doen’t exist錯誤
MySql Error 1146 Tabel doen't exist,一般情況下是表不存在,或者表名寫錯了、權(quán)限問題。
今天遇到了這個問題,仔細核對幾遍后,確認無誤,又在phpMyAdmin里嘗試select,可以查詢出數(shù)據(jù)。又核對權(quán)限,確認該mysql用戶具有所有權(quán)限。那這個錯誤是怎么回事呢?查詢了一些資料后,發(fā)現(xiàn)如果mysql引擎不對可能會造成真實存在的表卻無法訪問,但是發(fā)現(xiàn)引擎都是myisam。
這下犯愁了,錯誤出在哪里呢?又找了半天,仍然無果。無辜的看著這段報錯代碼,發(fā)呆了半天,突然發(fā)現(xiàn)了一個已經(jīng)被我忽視的細節(jié),詳細的報錯代碼為 Tabel ABC doen't exist,這里的表名為大寫,而數(shù)據(jù)庫中的表名為abc(馬冬注:只為舉例,沒有此表),是小寫的。在phpMyAdmin用大寫表名ABC嘗試select,果然報錯提示Tabel ABC doen't exist。
到這里,問題清楚可見,原因是一個被我忽略的問題:windows服務(wù)器下,mysql的數(shù)據(jù)表是大小寫不敏感的,而linux服務(wù)器默認情況下大小寫敏感。如果linux服務(wù)器要修改成大小寫不敏感,可以找到/etc/my.cnf,在[mysqld]下加入一行: lower_case_table_names=1。(馬冬注:lower_case_table_names默認情況下為0,及表名大小寫敏感;修改為1,即大小寫不敏感)。如果沒有修改服務(wù)器配置的權(quán)限,那就注意出現(xiàn)的每一個表名都要大小寫一致。
不注意小細節(jié),往往會浪費很多時間的。細節(jié)決定成敗。
相關(guān)文章
MySQL無法重啟報錯Warning: World-writable config file ‘/etc/my.cnf’
最近在維護公司服務(wù)器的時候,在關(guān)閉數(shù)據(jù)庫的命令發(fā)現(xiàn)mysql關(guān)不了了,提示錯誤為Warning: World-writable config file '/etc/my.cnf' is ignored,通過查找網(wǎng)上的資料終于解決了,現(xiàn)在將解決的方法分享給大家,同樣遇到這個問題的朋友們可以參考借鑒。2016-12-12
一文搞懂MySQL XA如何實現(xiàn)分布式事務(wù)
MySQL如何實現(xiàn)多個MySQL數(shù)據(jù)庫更新的一致性呢?那就是MySQL XA,本文就來介紹一下MySQL XA如何實現(xiàn)分布式事務(wù),具有一定的參考價值,感興趣的可以了解一下2021-11-11
MySQL中UNION 和 JOIN 多表聯(lián)合查詢方式
本文介紹了在MySQL中UNION和JOIN兩種多表查詢的方式,包括它們的適用場景、語法和特性,JOIN用于關(guān)聯(lián)數(shù)據(jù),而UNION用于合并具有相同結(jié)構(gòu)但無直接關(guān)系的數(shù)據(jù),感興趣的朋友跟隨小編一起看看吧2024-11-11
MySQL數(shù)據(jù)庫優(yōu)化推薦的編譯安裝參數(shù)小結(jié)
這篇文章主要介紹了MySQL數(shù)據(jù)庫優(yōu)化推薦的編譯安裝參數(shù)小結(jié),需要的朋友可以參考下2015-04-04
mysql優(yōu)化之路----hash索引優(yōu)化
本文是筆者自己做的關(guān)于mysql的優(yōu)化方面的小測試,暫時僅僅做了hash索引優(yōu)化的測試,以后會做更多方面,希望能夠給您帶來收獲,祝您工作愉快。2014-08-08

