簡體   English   中英

在mysql中更改默認的my.cnf路徑

[英]changing default my.cnf path in mysql

我在同一台機器上有兩個mysql實例。 安裝在/ usr / loca / mysql1和/ usr / local / mysql2上。

我在/ etc / mysql1和/ etc / mysql2中有單獨的my.cnf文件。 我使用source distribution和--prefix = / usr / local / mysql1選項安裝了我的第一個sql實例。 第二個我從復制和pastinf同一目錄到/ usr / local / mysql2。

當我在/usr.local/mysql/libexec上啟動mysql守護進程時,它會讀取/ etc / mysql1中的my.cnf文件。 如果我在/ usr / local / mysql2中啟動mysql守護進程,它會讀取相同的my.cnf文件。 我在這兩個位置的.cnf文件中定義了單獨的端口號和.sock文件。

我可以在mysqld startup上使用--defaults-file = / etc / mysql2 / my.cnf選項在第二個位置讀取my.cnf文件。 每次啟動守護進程時我都不需要輸入它。

如果我要有更多的實例,我怎么能指出正確的my.cnf文件來讀取每個mysql守護進程。 mysqld與my.cnf文件的鏈接背后的含義是什么?

我如何為每個實例預定義my.cnf文件的位置。

正如您已經發現的那樣,MySQL為其配置文件提供了一個已編譯的搜索位置。 雖然你可以自己重新編譯,但是你也發現了mysqld--defaults-file選項,它指示它使用完全不同的配置路徑。 --data-dir結合使用,這意味着你可以啟動綁定到不同端口(和地址,如果喜歡)的多個MySQL實例,並使用完全獨立的數據集,同時處理相同的二進制文件和庫。

傳統上,大多數操作系統發行版將捆綁單個init腳本以啟動MySQL的“默認”實例; 也就是說,安裝在“通常”位置的那個,以及標准配置路徑。 雖然這是為了迎合最常見的情況,但您所追求的有點不同,因此您需要創建單獨的腳本來啟動單獨的實例。

如果你計划在同一台機器上部署很多MySQL實例(我不得不問為什么),那么你可能想編寫一個自定義的init腳本,它有一些方法可以“發現”這些內容(也許)通過檢查包含“公共”布局的某個目錄,然后遍歷它們,從每個目錄開始。 當然,相同的init腳本需要能夠定位並正確關閉每個腳本。

我認為唯一可靠的方法是使用前綴選項從源代碼編譯。 要么是這樣,要么創建一個使用--defaults-file選項啟動mysql2的bash腳本,然后使用它來啟動它。

但是,按照您的方式“創建”另一個安裝並不好。 編譯包時,PREFIX被硬編碼到可執行文件中。 因此,每當它查找資源時,它都從該前綴開始,除非告訴不要使用命令行選項。

所以,如果我是你,我只需要使用新的前綴從源代碼重新編譯。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM