【詳記MySql問題大全集】四、設置MySql大小寫敏感(踩坑血淚史)

来源:https://www.cnblogs.com/RayWang/archive/2018/07/30/9264390.html
-Advertisement-
Play Games

系列目錄 一、安裝MySql 二、安裝並破解Navicat 三、沒有my.in配置文件怎麼辦 四、設置MySql的大小寫敏感 五、重置MySql登陸密碼 這一篇可以說是我的踩坑的血淚史了。。。 MySql在Windows下預設是大小寫不敏感的,當表名中有大寫字母的時候,MySql會直接把它轉化成小寫 ...


 系列目錄

一、安裝MySql

二、安裝並破解Navicat

三、沒有my.in配置文件怎麼辦

四、設置MySql的大小寫敏感

五、重置MySql登陸密碼


 

這一篇可以說是我的踩坑的血淚史了。。。

 

MySql在Windows下預設是大小寫不敏感的,當表名中有大寫字母的時候,MySql會直接把它轉化成小寫之後存儲。

 

如果想要設置大小寫敏感,方法網上一搜一大把,整體思路是:

 

在MySql的程式目錄下有一個配置文件叫“my.ini”

我們只需要用記事本打開它,然後在[mysqld]標記下添加一行代碼:

lower_case_table_names = 0

 

保存之後重啟MySql服務就可以了。

 

思路很清晰,步驟看著也很簡單,但是這裡面遍佈的大大小小無數的坑。。。下麵我就來挨個踩踩填填~

 

  坑No.1:MySql程式文件夾下沒有my.ini文件

這裡有兩種情況,跟安裝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服務。

具體怎麼新建怎麼綁定,可以參考前一章內容“三、沒有my.in配置文件怎麼辦”,這一章主要講採坑,細節就不講了~

 

  坑No.2:到底是0、1還是2

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也是可以的。

  坑No.3:在my.ini添加了大小寫敏感之後無法啟動MySql服務

這一個應該是最大的坑了。

當在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(詳細步驟在前一章“三、沒有my.in配置文件怎麼辦”)

 

最後,終於設置成功:

 

BTW,可能是因為MySql版本不同原因,我的另一臺電腦在my.ini下添加了大小寫敏感之後,重啟服務竟然直接成功了,然直接成功,直接成功了,接成功了,成功了,功了,了。。。

 

唉踩坑踩的太累,已然沒有心情再去關註到底哪個版本需要哪個版本不需要。。。

先這樣吧,希望看到這篇文章的人以我為鑒,不要再像我一樣被坑了~


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 分類安裝發展順序分為:網狀型資料庫層次型資料庫關係型資料庫面向對象資料庫主流:關係型資料庫關係型資料庫事務transaction: 多個操作被當作一個整體對待• ACID: A :原子性 C :一致性 I :隔離性 D:持久性實體Entity:• 客觀存在並可以相互區分的客觀事物或抽象事件稱為實體。... ...
  • noVNC 是一個 HTML5 VNC 客戶端,採用 HTML 5 WebSockets, Canvas 和 JavaScript 實現,noVNC 被普遍用在各大雲計算、虛擬機控制面板中,比如 OpenStack Dashboard 和 OpenNebula Sunstone 都用的是 noVNC... ...
  • VDEN 使能信號 HSYNC 水平方向的同步信號 VSYNC 垂直方向的同步信號 LED-/LED+ 背光信號 VCLK 時鐘信號 VD0~VD23 數字信號 GPB0輸出為1 驅動程式中: lcd_init: static struct fb_info *s3c_lcd; //定義一個結構體 / ...
  • VxWorks 7 是新一代的嵌入式實時操作系統,全新的架構設計,靈活化的組件配置,高可靠性與安全性,豐富的第三方軟體包,極大的方便用戶的開發和使用。本文對VxWorks7 的功能做個簡要的記錄。 VxWorks 7 平臺和配置 VxWorks 7 內核平臺提供 VxWorks 和 Workbenc ...
  • 1、yum:基於RPM包構建軟體更新機制自動解決依賴關係,軟體包由軟體包庫提供 提供方式:ftp服務:ftp://IP地址/倉庫目錄 Http服務:http :// IP地址/倉庫目錄 本地目錄:file://本地目錄 2、構建本地yum vim /etc/yum.repos.d/hanming.r ...
  • 1、yum配置 yum的配置文件在 /etc/yum.conf $releasever 當前系統的發行版本,$basearch CPU體系,使用命令 arch 查看 2、配置yum源 yum源文件在 /etc/yum.repos.d/ 中 看到 .repo 結尾的文件都是yum文件,其中,CentO ...
  • 1,Startx:切換到圖形界面 2,Pwd:查看當前目錄 3,Whoami:查看當前用戶 4,Cd: 1. 命令格式: cd [目錄名] 2. 命令功能: 切換當前目錄至dirName 3. 常用範例 3.1 例一:進入系統根目錄 命令: 輸出: 說明:進入系統根目錄,上面命令執行完後拿ls命令看 ...
  • 本篇文章主要介紹SqlServer使用時的註意事項。 想成為一個高級程式員,資料庫的使用是必須要會的。而資料庫的使用純熟程度,也側面反映了一個開放的水平。 下麵介紹SqlServer在使用和設計的過程中需要註意的事項。 SqlServer註意事項 Sql事務啟動語句 開始事務:BEGIN TRANS ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...