最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

mysql大小寫敏感導(dǎo)致程序無法啟動(dòng)的問題

 更新時(shí)間:2023年11月04日 09:03:56   作者:何錦康  
這篇文章主要介紹了mysql大小寫敏感導(dǎo)致程序無法啟動(dòng)的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

mysql大小寫敏感導(dǎo)致程序無法啟動(dòng)

將數(shù)據(jù)庫(kù)轉(zhuǎn)移到centos服務(wù)器上之后,項(xiàng)目啟動(dòng)一直報(bào)找不到XXX Table,但是數(shù)據(jù)庫(kù)中存在這個(gè)表,對(duì)比了一下發(fā)現(xiàn)報(bào)錯(cuò)信息的表名發(fā)現(xiàn)是大寫字母,就考慮到了可能換了環(huán)境,區(qū)分大小寫了,于是更改了mysql的配置文件

1.先找到配置文件的位置

2.進(jìn)入該目錄,編輯該配置文件

3.加上這樣一句話,1表示不區(qū)分,0表示區(qū)分

lower_case_table_names=1

再次啟動(dòng)項(xiàng)目,啟動(dòng)成功!

mysql表大小寫敏感規(guī)則引發(fā)的問題

踩坑原因

在部署一個(gè)工作流項(xiàng)目(flowable)時(shí),該項(xiàng)目用到了自動(dòng)創(chuàng)建表的一個(gè)機(jī)制,沒看源代碼但是大體意思就是檢測(cè)不到數(shù)據(jù)庫(kù)中有表的存在程序就自己創(chuàng)建。

windows下沒有問題,linux下報(bào)一些奇怪的錯(cuò)誤。

排查

描述問題前先描述一下項(xiàng)目的關(guān)系因?yàn)榈拇_有點(diǎn)亂 。

flowable 項(xiàng)目是要搭建的項(xiàng)目在gitee上托管,我們暫時(shí)稱之為f1然后這個(gè)項(xiàng)目又是基于github上的一個(gè)項(xiàng)目改的,這個(gè)項(xiàng)目我們暫時(shí)稱為f2。

程序自動(dòng)建表如果完成的很好那當(dāng)然是大吉大利。自動(dòng)建表操作是f2來做的,它所建的表都是些核心表,表名為大寫。前面說了f1 是在f2 上面擴(kuò)展的那必然就會(huì)有自己的表。只依靠f2自動(dòng)建表是不行的,項(xiàng)目根本跑不起來。f1提供了initsql,sql中包含了所有的表,有自己的還有f2的那些核心表,表名均為小寫。

部署過程先把服務(wù)器上的數(shù)據(jù)庫(kù)建好然后導(dǎo)入數(shù)據(jù),一切正常數(shù)據(jù)庫(kù)出現(xiàn)了一堆小寫的表。運(yùn)行f1程序,報(bào)錯(cuò)信息是一些表外建重復(fù)定義之類的。這時(shí)再看數(shù)據(jù)庫(kù)出現(xiàn)了很多大寫的表名。和小寫表名重復(fù)的。比如 act_ru_job ACT_RU_JOB。第一次看到有點(diǎn)懵。為什么windwos下沒有問題,到linux下就又問題了。把windows下的程序數(shù)據(jù)庫(kù)連接換為L(zhǎng)inux的一樣報(bào)錯(cuò)。這下明白肯定是操作系統(tǒng)間不同的機(jī)制導(dǎo)致出的幺蛾子。

瘋狂google了一番找到了相關(guān)信息。

在mysql中執(zhí)行下面語(yǔ)句

show variables like '%lower_case_table_names%';

表現(xiàn)的值有三種 0 1 2。

  • 0 linux 下默認(rèn)規(guī)則,表名區(qū)分大小寫。
  • 1 windows 下默認(rèn)規(guī)則,表名存儲(chǔ)在磁盤是小寫的,但是比較的時(shí)候是不區(qū)分大小寫。
  • 2 macos,下默認(rèn)規(guī)則,表名存儲(chǔ)為給定的大小寫但是比較的時(shí)候是小寫的

這下才明白,程序?yàn)樯兑恢睓z測(cè)不到表存在,然后自己創(chuàng)建。原因就是linux下大小寫嚴(yán)格區(qū)分的,改為和windwos下的值一樣就可以了。事情不會(huì)那么簡(jiǎn)單。

限制

找到my.conf在[mysqld] 下添加 lower_case_table_names=1,保存重啟。mysql跑不起來,官方文檔上寫這個(gè)參數(shù)只能在數(shù)據(jù)庫(kù)初始化操作之前添加,如果數(shù)據(jù)庫(kù)已經(jīng)初始化完成了就不能再添加了,那么怎么辦呢?

如果沒有重要數(shù)據(jù)直接刪除數(shù)據(jù)目錄,執(zhí)行 mysqld --initialize --user=mysql --lower-case-table-names=1 要加上–user=mysql。不然數(shù)據(jù)目錄所有者是root啟動(dòng)時(shí)會(huì)報(bào)權(quán)限錯(cuò)誤。

有數(shù)據(jù)的話先導(dǎo)出設(shè)置好后再導(dǎo)入。

心得:

因?yàn)檫@個(gè)破問題搞了好幾個(gè)小時(shí),實(shí)屬惡心。

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • mysql字段為NULL索引是否會(huì)失效實(shí)例詳解

    mysql字段為NULL索引是否會(huì)失效實(shí)例詳解

    有很多人對(duì)null值是否走索引感覺很疑惑,所以下面這篇文章主要給大家介紹了關(guān)于mysql字段為NULL索引是否會(huì)失效的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-05-05
  • Mysql視圖和觸發(fā)器使用過程

    Mysql視圖和觸發(fā)器使用過程

    這篇文章主要介紹了MySql視圖與觸發(fā)器使用過程,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2022-12-12
  • MySQL刪除表數(shù)據(jù)的方法

    MySQL刪除表數(shù)據(jù)的方法

    這篇文章主要介紹了MySQL刪除表數(shù)據(jù)的方法,小編覺得還是挺不錯(cuò)的,這里給大家分享一下,需要的朋友可以參考。
    2017-10-10
  • mysql?binlog?回滾示例解析

    mysql?binlog?回滾示例解析

    嚴(yán)格來說mysqlbinlog 不能算回滾,他只是將過去的數(shù)據(jù)修改記錄 重新執(zhí)行一遍,但是從結(jié)果上來看,他也算把數(shù)據(jù)恢復(fù)到任意時(shí)間點(diǎn)了,這篇文章主要介紹了mysql?binlog回滾示例解析,需要的朋友可以參考下
    2023-08-08
  • MySQL時(shí)間盲注的五種延時(shí)方法實(shí)現(xiàn)

    MySQL時(shí)間盲注的五種延時(shí)方法實(shí)現(xiàn)

    MySQL時(shí)間盲注主要有五種,sleep(),benchmark(t,exp),笛卡爾積,GET_LOCK() RLIKE正則,本文就主要介紹了這五種方法,感興趣的可以了解一下
    2021-05-05
  • mysql查看binlog日志的配置方法

    mysql查看binlog日志的配置方法

    文章介紹了如何配置和查看MySQL 8.0的binlog日志,包括開啟binlog、查看當(dāng)前日志位置、查看日志目錄和信息,以及使用mysqlbinlog工具查看和分析binlog日志,感興趣的朋友跟隨小編一起看看吧
    2025-11-11
  • MySQL查看與修改當(dāng)前數(shù)據(jù)庫(kù)編碼的方法

    MySQL查看與修改當(dāng)前數(shù)據(jù)庫(kù)編碼的方法

    這篇文章主要介紹了MySQL查看與修改當(dāng)前數(shù)據(jù)庫(kù)編碼的方法,需要的朋友可以參考下
    2016-04-04
  • MySQL中出現(xiàn)lock?wait?timeout?exceeded問題及解決

    MySQL中出現(xiàn)lock?wait?timeout?exceeded問題及解決

    這篇文章主要介紹了MySQL中出現(xiàn)lock?wait?timeout?exceeded問題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • MySQL基礎(chǔ)教程之IN的用法詳解

    MySQL基礎(chǔ)教程之IN的用法詳解

    這篇文章主要介紹了MySQL基礎(chǔ)教程之IN的用法詳解的相關(guān)資料,需要的朋友可以參考下
    2017-01-01
  • Windows安裝MySQL后怎么開啟root的網(wǎng)絡(luò)訪問權(quán)限

    Windows安裝MySQL后怎么開啟root的網(wǎng)絡(luò)訪問權(quán)限

    Windows安裝MySQL后默認(rèn)只能本機(jī)訪問,怎么開啟網(wǎng)絡(luò)訪問,本文給大家介紹介紹了Windows安裝MySQL后怎么開啟root的網(wǎng)絡(luò)訪問權(quán)限,需要的朋友可以參考下
    2023-08-08

最新評(píng)論

阜新市| 江口县| 临安市| 安乡县| 盘锦市| 偏关县| 汝南县| 宝坻区| 龙山县| 崇礼县| 武汉市| 中超| 安平县| 衢州市| 崇仁县| 新源县| 大邑县| 兴业县| 望奎县| 自治县| 淮阳县| 库车县| 尼勒克县| 宁陕县| 全南县| 山阳县| 昌宁县| 乌兰浩特市| 大荔县| 宜州市| 获嘉县| 徐水县| 九龙坡区| 塘沽区| 清远市| 名山县| 明水县| 贵阳市| 长治县| 禹城市| 威远县|