debian apt mysql無密碼安裝
在debian下安裝mysql數據庫時只需要apt-get install mysql-server-5.x即可,然後在安裝過程中會彈出一個對話框,讓你輸入mysql的root帳號的密碼,如果要批量給100台機器安裝mysql的時候就比較麻煩了,難道要一台一台的去設置密碼?google一番發現還真有捷徑。
先下載mysql的deb包卻不安裝,apt就可以實現,一下操作均在debian6上:
1 www.2cto.com
<span style="font-size:14px;font-family:'Microsoft YaHei';">apt-get -d install mysql-server-5.1</span>
-d的意思就是download-only只下載不安裝,debian下載的包默認在/var/cache/apt/archives目錄下
dpkg-preconfigure命令是導入相關包的debconf數據庫,在包安裝之前顯示他會有那些交互的問題需要回答,進入/var/cache/apt/archives目錄執行如下命令:
1
<span style="font-size:14px;font-family:'Microsoft YaHei';">dpkg-preconfigure mysql-server-5.1_5.1.49-3_amd64.deb</span> www.2cto.com
debconf-show命令可以查詢相關包的debconf database
可以看到有兩個password是需要設置的。在/tmp目錄下建立mysql-passwd文件輸入如下內容並使文件生效:
apt-get clean 清除緩存的包,然後開始使用apt安裝mysql,過程中不會再有對話框彈出
可以看到在安裝過程中並沒有彈出密碼設定框,然後用mysql-passwd中設置的123456密碼登錄數據庫即可登錄,然後改root密碼為999999登錄:
www.2cto.com
一切正常,這樣就可以批量安裝mysql的時候不用設置密碼了,也可以擴展到其他軟件包。
下面介紹一下上面用到的一些包管理命令:
debconf-set-selections:在debconf database中插入默認值。
useage:
debconf-set-selections file
debconf-get-selections | ssh newhost debconf-set-selections
www.2cto.com
file數據格式
<owner> <question name> <question type> <value>
數據是以行為單位的,以#開頭的行是注釋,空行會被忽略掉,其他行設置問題的默認值,應該包含四個值,每個之間用一個空格分開,在類型和值之間只有一個空格或者 tab:任何額外的空格將被解釋為值的一部分。一行可以通過行尾的反斜槓(“\”)連接符分成多行。分割一行比較妥當的地方是在問題後面;在類型和值之間分割則是糟糕做法。被分割的行連接時會把行首和行尾的空格縮減為一個空格,再組成單獨一行。對於安裝程序自己使用的 debconf 變量(模板),owner 應該設置為 “d-i”;要在安裝後的系統裡面預置變量,應該使用名稱中包含對應 debconf 模板的軟件包。只有那些 owner 為非 “d-i” 的變量將被保存到安裝後系統的 debconf 數據庫裡面。為了檢測問題答案可用的值,您可以在安裝進行中使用 nano 檢查 /var/lib/cdebconf 下的文件。templates.dat 是原始的模板,questions.dat 是當前變量設置的值。為了在安裝之前測試配置文件是否有格式錯誤可以使用debconf-set-selections -c file進行檢查
作者 獒斯-拆哪