官答|初始化GreatSQL報錯無法找到數(shù)據(jù)目錄或初始化數(shù)據(jù)字典失敗
GreatSQL推出新欄目——官答
官答欄目針對GreatSQL數(shù)據(jù)庫中的問題,選取官方論壇和討論群中的典型提問進行深入解答溉知。內(nèi)容涵蓋數(shù)據(jù)庫安裝部署、配置優(yōu)化腕够、故障排查级乍、性能測試等方面。
在文章中,我們不僅提供解決方案,還會結(jié)合實例深入剖析問題的成因,提升讀者對GreatSQL數(shù)據(jù)庫的理解能力燕少。
如果你在管理卡者、使用GreatSQL數(shù)據(jù)庫時遇到棘手的技術(shù)難題,想系統(tǒng)地學(xué)習(xí)提高數(shù)據(jù)庫技能,就來看看官答的文章吧。這里不僅可以找到可靠的解決方法,還能從中學(xué)習(xí)到數(shù)據(jù)庫優(yōu)化的經(jīng)驗和思路客们。
通過閱讀官答的內(nèi)容,可以全面地掌握GreatSQL數(shù)據(jù)庫管理的技能,熟練應(yīng)對各種故障情況〔姆蹋快來關(guān)注官答欄目,與我們一起成長!
本問題也是來自討論群底挫,用戶使用的是GreatSQL-8.0.32-24版本數(shù)據(jù)庫
- GreatSQL-8.0.32-24-Linux-glibc2.28-x86_64-minimal.tar.xz
GreatSQL是一款開源免費數(shù)據(jù)庫,可在普通硬件上滿足金融級應(yīng)用場景脸侥,具有高可用建邓、高性能、高兼容睁枕、高安全等特性官边,可作為MySQL或Percona Server for MySQL的理想可選替換。
用戶提供錯誤日志如下
$ cat error.log
2023-10-27T11:18:22.862989+08:00 0 [Warning] [MY-011069] [Server] The syntax '--slave-rows-search-algorithms' is deprecated and will be removed in a future release.
2023-10-27T11:18:22.863011+08:00 0 [Warning] [MY-011069] [Server] The syntax '--master-info-repository' is deprecated and will be removed in a future release.
2023-10-27T11:18:22.863025+08:00 0 [Warning] [MY-011069] [Server] The syntax '--relay-log-info-repository' is deprecated and will be removed in a future release.
2023-10-27T11:18:22.864851+08:00 0 [Warning] [MY-010101] [Server] Insecure configuration for --secure-file-priv: Location is accessible to all OS users. Consider choosing a different directory.
2023-10-27T11:18:22.864949+08:00 0 [Note] [MY-010949] [Server] Basedir set to /usr/local/greatsql/.
2023-10-27T11:18:22.864966+08:00 0 [System] [MY-010116] [Server] /usr/local/greatsql/bin/mysqld (mysqld 8.0.25) starting as process 94635
2023-10-27T11:18:22.876808+08:00 0 [Note] [MY-012366] [InnoDB] Using Linux native AIO
2023-10-27T11:18:22.877183+08:00 0 [Note] [MY-010747] [Server] Plugin 'FEDERATED' is disabled.
2023-10-27T11:18:22.880103+08:00 1 [ERROR] [MY-011011] [Server] Failed to find valid data directory.
2023-10-27T11:18:22.880512+08:00 0 [ERROR] [MY-010020] [Server] Data Dictionary initialization failed.
2023-10-27T11:18:22.880639+08:00 0 [ERROR] [MY-010119] [Server] Aborting
2023-10-27T11:18:22.880688+08:00 0 [Note] [MY-010120] [Server] Binlog end
2023-10-27T11:18:22.880931+08:00 0 [Note] [MY-010733] [Server] Shutting down plugin 'MyISAM'
2023-10-27T11:18:22.880972+08:00 0 [Note] [MY-010733] [Server] Shutting down plugin 'InnoDB'
2023-10-27T11:18:22.881011+08:00 0 [Note] [MY-010733] [Server] Shutting down plugin 'CSV'
2023-10-27T11:18:22.881047+08:00 0 [Note] [MY-010733] [Server] Shutting down plugin 'daemon_keyring_proxy_plugin'
2023-10-27T11:18:22.881569+08:00 0 [System] [MY-010910] [Server] /usr/local/greatsql/bin/mysqld: Shutdown complete (mysqld 8.0.25) MySQL Community Server -
用戶采用初始化命令如下
$ /usr/local/greatsql/bin/mysqld --defaults-file=/etc/my.cnf -initialize --user=mysql --datadir /data/greatsql --lower-case-table-names=1
其實在這里就可以看出問題所在 :)
嘗試解決
我們可以從以下幾個方面進行檢查,排查數(shù)據(jù)目錄失效的原因:
- 檢驗數(shù)據(jù)目錄
/data/greatsql
是否真實存在外遇。 - 檢查
/data/greatsql
目錄的權(quán)限設(shè)置是否正確,避免因權(quán)限問題導(dǎo)致無法訪問注簿。 - 在my.cnf配置文件中核對datadir參數(shù)是否設(shè)置正確,不存在誤指向其他目錄的情況。
- 查看操作系統(tǒng)的存儲空間是否充足跳仿。
經(jīng)過仔細的排查驗證,確認這些配置都是正確的,數(shù)據(jù)目錄存在并且具有可訪問權(quán)限,my.cnf中的參數(shù)也沒有錯誤诡渴。
集思廣益
針對此問題,群友們積極提出了解決思路:
- 首先,有用戶建議去掉執(zhí)行sql語句末尾的
"--lower-case-table-names=1"
參數(shù),并嘗試執(zhí)行。但遺憾的是,刪除該參數(shù)后問題仍然存在,沒有得到解決菲语。 - 其次,另一位用戶分析可能是my.cnf配置文件的默認參數(shù)干擾了sql語句,因此建議暫時改變my.cnf的文件名或注釋默認調(diào)用配置,再執(zhí)行sql,看看是否能避開默認參數(shù)的影響妄辩。但是該建議未得到驗證,預(yù)計執(zhí)行結(jié)果也是相同的錯誤。
群友們提出的方法尚未奏效,那這件事情就很奇怪,到底是哪里出現(xiàn)了問題呢山上?
問題解決
其實我們再回頭來看看初始化命令
$ /usr/local/greatsql/bin/mysqld --defaults-file=/etc/my.cnf -initialize --user=mysql --datadir /data/greatsql --lower-case-table-names=1
接著我們再來看看GreatSQL官方文檔是怎么初始化的
※ 截取自GreatSQL官方手冊 【Ubuntu系統(tǒng)中安裝GreatSQL】?https://gitee.com/GreatSQL/GreatSQL-Manual/blob/master/4-install-guide/3-2-ubuntu-install.md
$ mysqld --defaults-file=/etc/mysql/my.cnf --initialize-insecure --user=mysql
眼尖的同學(xué)已注意到執(zhí)行語句出現(xiàn)格式錯誤眼耀,initialize
前缺少一個連接符"-"
,此處用戶是復(fù)制粘貼它處的命令進行使用,在操作過程中不小心遺漏了一個字符,導(dǎo)致語法格式不正確,執(zhí)行失敗佩憾。
及時發(fā)現(xiàn)并添加上這個簡單的連接符后,問題迎刃而解,語句成功執(zhí)行哮伟。
可以看出,大多數(shù)問題的起因都是我們在操作過程中的一時疏忽或不留神造成的干花。正如這句話說得好:“大部分問題,都是粗心大意導(dǎo)致的”澈吨。
這個案例也提醒我們,在數(shù)據(jù)庫開發(fā)和管理中,任何一個細節(jié)都不可忽視把敢。應(yīng)保持高度的專注和細致,檢查每個步驟的語法和邏輯,以減少人為操作失誤出現(xiàn)的可能。
這里建議大家采用GreatSQL提供的官方手冊文檔,按照流程進行安裝部署谅辣。
GreatSQL手冊都是經(jīng)過詳細驗證的,每個步驟都經(jīng)歷了測試,確毙拊蓿可靠性。遵循手冊的安裝方法,能夠幫助用戶順利完成環(huán)境配置,避免踩坑桑阶。
我們GreatSQL提供了多種靈活的安裝方式,可滿足不同需求:
RPM方式提供了便捷的包管理安裝柏副。
二進制安裝方式具有極強的跨平臺兼容性,支持CentOS、Ubuntu蚣录、OpenEuler割择、統(tǒng)信UOS、龍蜥萎河、麒麟等主流操作系統(tǒng)荔泳。
源碼編譯方式可以全面自定義編譯參數(shù),適用于對性能和定制化要求極高的場景。
Ansible安裝自動化程度高,可以輕松實現(xiàn)大規(guī)模集群部署虐杯,以及Docker方式安裝GreatSQL數(shù)據(jù)玛歌。
通過這些安裝方式,GreatSQL可以應(yīng)對各種復(fù)雜的生產(chǎn)環(huán)境,無論是傳統(tǒng)的物理機部署,還是新的虛擬化和容器化部署,手冊都能助您快速上手,節(jié)省寶貴時間。
GreatSQL安裝手冊?https://gitee.com/GreatSQL/GreatSQL-Manual/blob/master/4-install-guide/0-install-guide.md
常規(guī)解決
這個錯誤通常是由于GreatSQL無法找到有效的數(shù)據(jù)目錄導(dǎo)致的擎椰≈ё樱可能的原因是在安裝GreatSQL時指定了不正確的數(shù)據(jù)目錄或者數(shù)據(jù)目錄不可用,常規(guī)的解決方法就是:
1.確認GreatSQL目錄是否存在
2.檢查GreatSQL目錄權(quán)限是否正常达舒,通常確保是MySQL用戶有該目錄的權(quán)限
3.確保GreatSQL目錄為空值朋,因為初始化失敗可能導(dǎo)致目錄中還有數(shù)據(jù),如果重新初始化要確保目錄為空
4.如果GreatSQL目錄不存在巩搏,可以嘗試手動創(chuàng)建數(shù)據(jù)目錄
5.如果GreatSQL目錄存在但是不可用昨登,可以嘗試在指定另一個數(shù)據(jù)目錄或重新安裝GreatSQL
如果以上方法都無法解決,那快到GreatSQL官網(wǎng)發(fā)個帖子吧?https://greatsql.cn/forum-36-1.html
Enjoy GreatSQL :)
關(guān)于 GreatSQL
GreatSQL是適用于金融級應(yīng)用的國內(nèi)自主開源數(shù)據(jù)庫塔猾,具備高性能篙骡、高可靠、高易用性丈甸、高安全等多個核心特性糯俗,可以作為MySQL或Percona Server的可選替換,用于線上生產(chǎn)環(huán)境睦擂,且完全免費并兼容MySQL或Percona Server得湘。