系列目錄html
1、安裝MySqlmysql
2、安裝並破解Navicatsql
3、沒有my.in配置文件怎麼辦app
4、設置MySql的大小寫敏感spa
5、重置MySql登錄密碼code
這一篇能夠說是個人踩坑的血淚史了。。。server
MySql在Windows下默認是大小寫不敏感的,當表名中有大寫字母的時候,MySql會直接把它轉化成小寫以後存儲。htm
若是想要設置大小寫敏感,方法網上一搜一大把,總體思路是:blog
在MySql的程序目錄下有一個配置文件叫「my.ini」ci
咱們只須要用記事本打開它,而後在[mysqld]標記下添加一行代碼:
lower_case_table_names = 0
保存以後重啓MySql服務就能夠了。
思路很清晰,步驟看着也很簡單,可是這裏面遍及的大大小小無數的坑。。。下面我就來挨個踩踩填填~
這裏有兩種狀況,跟安裝MySql的方式有關。
針對Windows系統,MySql官網(https://dev.mysql.com/downloads/mysql/)給了兩種安裝方式:
一種是下載MSI安裝,這種安裝模式和通常的軟件安裝程序同樣,運行以後系統會有一個引導程序,你只須要一直點擊「下一步」就能安裝完成;
另外一種是下載ZIP文件安裝,這種方式下載解壓以後,解壓出來的文件就是MySql程序自己,不須要執行安裝程序,能夠直接使用。
針對第一種狀況,MSI安裝,安裝以後系統是會自動生成my.ini配置文件的,若是在主程序文件目錄找不到,那麼能夠去你安裝MySql的磁盤下的ProgramData文件下找找,通常的默認路徑是:
C:\ProgramData\MySQL\MySQL Server 8.0\my.ini
這我很早以前裝的版本,位置是這樣的:
針對第二種,ZIP安裝,這種安裝模式是沒有my.ini配置文件的。。。須要本身新建一個my.ini文件,而後綁定到MySql服務。
具體怎麼新建怎麼綁定,能夠參考前一章內容「3、沒有my.in配置文件怎麼辦」,這一章主要講採坑,細節就不講了~
my.ini下設置大小寫敏感的語句是:
lower_case_table_names = x
這裏的x到底應該寫0仍是1仍是2?
網上這三種版本都有,還有說是跟MySql的版本有關的。
其實,0,1,2這三個數字全都是合法的,並且它們所表明的意思都不同:
#If set to 0, table names are stored as specified and comparisons are case sensitive. #If set to 1, table names are stored in lowercase on disk and comparisons are not case sensitive. #If set to 2, table names are stored as given but compared in lowercase. This option also applies to database names and table aliases.
lower_case_table_names = 2
簡單說,就是;
0:存儲和比較都是大小寫敏感的,好比:新建一張表叫「TestTable」,再建一張表叫「testtable」也是能夠的 1:大小寫不敏感,新建的時候系統會贊成轉化成小寫 2:存儲大小寫敏感,可是比較的時候會轉化爲小寫比較,好比:新建一張表叫「TestTable」,顯示的時候是大小寫都有的,可是當再新建一張「testtable」的時候就會報錯,由於比較是統一轉換成小寫比較的。
若是想設置大小寫敏感的話,我的建議,儘可能不要使用0,而使用2。
固然,有特殊需求的話,非要使用0也是能夠的。
這一個應該是最大的坑了。
當在my.ini文件下添加「lower_case_table_names = 2」後,重啓服務,卻顯示:
或者是這樣:
而後,把這行設置從my.ini刪除以後,就又能夠啓動服務了。
明明是按照網上說的步驟一步一步來的,怎麼就報錯了呢?
最後被逼無奈,只能去翻MySQl的官方文檔。
而後就發現了下面這段話:
lower_case_table_names can only be configured when initializing the server.
Changing the lower_case_table_names setting after the server is initialized is prohibited.
意思是大小寫敏感只能在安裝MySql初始化以前設置,以後是不行的。。。
解決辦法是要先刪除服務,而後在my.ini文件下編輯好大小寫敏感設置,編輯好以後再去使用這個my.ini文件安裝初始化MySql(詳細步驟在前一章「3、沒有my.in配置文件怎麼辦」)
最後,終於設置成功:
BTW,多是由於MySql版本不一樣緣由,個人另外一臺電腦在my.ini下添加了大小寫敏感以後,重啓服務居然直接成功了,然直接成功,直接成功了,接成功了,成功了,功了,了。。。
唉踩坑踩的太累,已然沒有心情再去關注到底哪一個版本須要哪一個版本不須要。。。
先這樣吧,但願看到這篇文章的人以我爲鑑,不要再像我同樣被坑了~