Apache-2.2

我可以將 MySql 配置文件儲存在 /etc 文件夾中嗎?如何?

  • November 18, 2010

我是 Linux 新手。剛學php/mysql開發。在 Windows 上,我將 Apache、PHP、Mysql、PgSQL 目錄保存在單獨驅動器上的一個文件夾中,如下所示:

D:\server
   \mysql
   \apache
   \php

所以 - 如果我要重新安裝 Windows - 我所要做的就是啟動 mysql 和 httpd 服務 - 就是這樣。快捷方便。和 XAMPP 一樣,除了我不需要 xammp 給你的 20 個額外的應用程序。

我很想在 Ubuntu 中做同樣的事情。因此,我會將 apache、mysql、php 保存在單獨的驅動器上,並在需要時啟動它們(init.d 或 upstart 以自動啟動它們)。

所以 - 結構將是:

/media/storage/server
/media/storage/server/mysql
/media/storage/server/apache
/media/storage/server/php

除了配置文件之外,我還編譯和設置了所有內容。

問題是:

我也希望所有配置文件都在一個地方。我的意思是 http.conf -in apache 文件夾。my.cnf - 在 mysql 文件夾中

所以 - 問題: 如何讓 MySQL 不從 /etc/my.cnf 載入配置文件,而是從另一個任意位置載入配置文件。在任何地方都找不到此資訊..:(

重要的:

1)它不是生產伺服器!它僅適用於學習Web開發和Linux並且不想在更改發行版時繼續重新安裝和重新配置伺服器的人。2) 我知道這違反了 Linux 分層標準。3)我現在關於 Ubuntu 的任務燈伺服器和/或 XAMPP 易用性:)

閱讀http://dev.mysql.com/doc/refman/5.1/en/option-files.html

在 Unix、Linux 和 Mac OS X 上,MySQL 程序以指定的順序從以下文件中讀取啟動選項(首先使用最上面的項目)。

實現目標的最簡單方法可能是使用簡單的符號連結。讓包在它想創建它們的任何地方創建它的配置文件。一旦完成,只需將配置文件移動到您想要的位置,然後從包期望它的位置創建一個符號連結到您想要儲存配置的文件夾。

所以如果你安裝了官方的 mysql 伺服器包,你會做這樣的事情。

rsync -av /etc/mysql/ /media/storage/server/mysql/ #copy mysql config
rm -r /etc/mysql                                   # remove original folder
ln -s /media/storage/server/mysql /etc/mysql/      # create symlink to new folder

如果您可以承諾使用單一發行版來執行您的 Web 堆棧,那麼您可以通過設置chroot 環境來讓自己更輕鬆。chroot 基本上允許您擁有一個包含自包含應用程序及其所需的所有支持庫的文件夾。如果你在多個地方有相同的架構,你應該能夠在任何系統上從那個 chroot 執行東西。建構一個 Debian/Ubuntu chroot非常容易,我偶爾會使用它來允許我在我的系統上擁有多個不同版本的發行版來進行測試。

引用自:https://serverfault.com/questions/203680