mysql執(zhí)行語(yǔ)句后只有錯(cuò)誤代碼,沒(méi)有錯(cuò)誤信息的問(wèn)題
問(wèn)題說(shuō)明
mysql數(shù)據(jù)庫(kù)在執(zhí)行完sql語(yǔ)句后,因語(yǔ)法錯(cuò)誤,報(bào)錯(cuò)時(shí)僅顯示錯(cuò)誤代碼,沒(méi)有錯(cuò)誤信息。
這個(gè)大部分原因是安裝數(shù)據(jù)庫(kù)時(shí)出現(xiàn)問(wèn)題,/etc/my.cnf配置項(xiàng)不對(duì)。
有的人安裝的時(shí)候是使用源碼安裝,需要自己去配置,在這種情況下就有可能出現(xiàn)錯(cuò)配。
本例中就是因?yàn)殄e(cuò)配了/etc/my.cnf導(dǎo)致的問(wèn)題。
如下圖所示,在執(zhí)行完語(yǔ)句后,僅顯示1075錯(cuò)誤代碼,后面什么信息也沒(méi)有。
解決方案
第一步,先查看錯(cuò)誤日志,具體錯(cuò)誤日志的位置請(qǐng)根據(jù)實(shí)際情況尋找,本例中mysql錯(cuò)誤日志文件位置在/var/log/mysqld.log,大部分使用rpm方式安裝的話,默認(rèn)也在這個(gè)位置。
第二步,查看具體錯(cuò)誤日志,如下圖所示,明確提示了找不到errmsg.sys文件
# less /var/log/mysqld.log|grep -i error
第三步,根據(jù)錯(cuò)誤日志,找到errmsg.sys文件具體位置。
使用whereis查看mysql相關(guān)的安裝路徑,再次找到errmsg.sys文件位置,如下圖所示,errmsg.sys文件位置在/usr/share/mysql/english
第四步,在/etc/my.cnf文件中增加lc-messages-dir=/usr/share/mysql配置,這里說(shuō)下為什么是lc-messages-dir,是因?yàn)殄e(cuò)誤日志里面提示了這個(gè)配置,因此加上這個(gè)配置,為什么路徑是/usr/share/mysql,這個(gè)是因?yàn)橐话闶莔ysql的主路徑,也就是basedir路徑,只要這個(gè)對(duì)了,文件自然能找到。
第五步,重啟mysql
# service mysqld restart
第六步,再次查詢剛剛的語(yǔ)句,查看結(jié)果,現(xiàn)在有錯(cuò)誤信息了。
第七步,再次查看錯(cuò)誤日志,可以看到剛剛的錯(cuò)沒(méi)有了,到這一步errmsg.sys這個(gè)問(wèn)題已經(jīng)解決了。如果你有興趣,可以接著往下看。
第八步,剛剛說(shuō)了,到第七步,問(wèn)題已經(jīng)解決了,但是本次測(cè)試意外的發(fā)現(xiàn)另外的錯(cuò),那這個(gè)錯(cuò)和上面的errmsg.sys錯(cuò)有什么關(guān)系,可以看到這個(gè)錯(cuò)是找不到so文件。
再次返回查看配置文件,可以看到是因?yàn)檫@里的basedir配置的是/usr/bin/mysql,所以跟mysql相關(guān)的文件都會(huì)在這個(gè)路徑下面去找,但是errmsg.sys和現(xiàn)在的這個(gè)so文件并不在/usr/bin/mysql路徑下,所以歸根結(jié)底,還是basedir配置錯(cuò)了,引起了連鎖反應(yīng),導(dǎo)致了一系列錯(cuò)。
最終修改basedir配置項(xiàng),把這個(gè)注釋掉即可(使用rpm默認(rèn)安裝可以注釋掉)或者配置正確的basedir路徑(尤其是使用源碼自定義安裝的mysql數(shù)據(jù)庫(kù)一定要配置對(duì)basedir),本例中注釋掉basedir。
最后一步,重啟mysql,所有的錯(cuò)都沒(méi)有了,如下圖所示。
總結(jié)
自定義安裝的mysql,/etc/my.cnf一定要配置對(duì),不然會(huì)有很多意想不到的問(wèn)題。
rpm默認(rèn)安裝的mysql,也檢查下/etc/my.cnf對(duì)不對(duì),啟動(dòng)完以后,查看mysql有沒(méi)有報(bào)錯(cuò)。
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
細(xì)說(shuō)mysql replace into用法
這篇文章主要介紹了細(xì)說(shuō)mysql replace into,需要的朋友可以參考下2021-03-03完美解決MySQL數(shù)據(jù)庫(kù)服務(wù)器CPU飆升問(wèn)題
這篇文章主要介紹了解決 MySQL 數(shù)據(jù)庫(kù)服務(wù)器 CPU 飆升的方法,包括定位問(wèn)題(如使用工具監(jiān)控、查看慢查詢?nèi)罩荆?、?yōu)化 SQL 查詢、調(diào)整配置參數(shù)、優(yōu)化數(shù)據(jù)庫(kù)架構(gòu)、檢查硬件資源、處理鎖競(jìng)爭(zhēng)問(wèn)題等,還通過(guò)電商業(yè)務(wù)系統(tǒng)的案例進(jìn)行了詳細(xì)分析及給出解決方法,最終優(yōu)化效果顯著2025-02-02Mysql安裝注意事項(xiàng)、安裝失敗的五個(gè)原因分析
這篇文章主要介紹了Mysql安裝注意事項(xiàng)、安裝失敗的五個(gè)原因分析,需要的朋友可以參考下2016-04-04mysql配置SSL證書(shū)登錄的實(shí)現(xiàn)
應(yīng)國(guó)家等級(jí)保護(hù)三級(jí)安全要求,mysql 的 ssl 需要安全證書(shū)加密,本文主要介紹了mysql配置SSL證書(shū)登錄,感興趣的可以了解一下2021-09-09超越MySQL 對(duì)流行數(shù)據(jù)庫(kù)進(jìn)行分支的知識(shí)小結(jié)
盡管MySQL是最受歡迎的程序之一,但是許多開(kāi)發(fā)人員認(rèn)為有必要將其拆分成其他項(xiàng)目,并且每個(gè)分支項(xiàng)目都有自己的專長(zhǎng)。該需求,以及 Oracle 對(duì)核心產(chǎn)品增長(zhǎng)緩慢的擔(dān)憂,導(dǎo)致出現(xiàn)了許多開(kāi)發(fā)人員感興趣的子項(xiàng)目和分支2012-01-01探討:sql插入空,默認(rèn)1900-01-01 00:00:00.000的解決方法詳解
本篇文章是對(duì)sql插入空,默認(rèn)1900-01-01 00:00:00.000的解決方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06MySQL FIND_IN_SET函數(shù)的使用場(chǎng)景
本文介紹了MySQL中FIND_IN_SET函數(shù)的基本語(yǔ)法和使用場(chǎng)景,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2025-01-01