標籤:
為什麼要折騰?
首先說明的是ubuntu上安裝mysql等軟體是非常容易簡單的,其簡單的程度蓋過windows上的安裝,一句sudo apt-get install就可以搞定。如果想用最簡便的方法安裝mysql,那麼本文不適合你;如果你喜歡“折騰”,有興趣瞭解這一條sudo apt-get install幫你做了什麼,有興趣瞭解internal linux的細節並想嘗試自己編譯軟體,那麼你是本文的目標讀者,希望你能從這篇文章中獲得收穫。
編譯安裝的幾大步驟:
- 編譯前的準備工作
- 初識CMAKE——配置MySQL編譯選項
- 編譯安裝
- 安裝後的MySQL配置
- 設定開機自動啟動MySQL服務
一、編譯前的準備工作
- 官方網站下載Source Code(點此進入下載頁)選擇Source Code–>Generic Linux(mysql-VERSION.tar.gz)(PS:chrome訪問此頁,可能會遇到顯示不正常的情況,建議換FF訪問)
- 建議有興趣的童鞋讀一讀解壓後的mysql目錄下的相關文檔,有許多重要的資訊。比如此文以及大部分的類似文章都參考自INSTALL-SOURCE文檔。
- 建立mysql使用者以及使用者組,方便管理
代碼:sudo groupadd mysql代碼:sudo useradd -r -g mysql mysql
二、初識CMAKE——配置MySQL編譯選項
MySQL 5.5的編譯工具由Autotool轉變為了cmake(有關於更多關於cmake的資訊,請大家自行google瞭解)。MySQL團隊也撰寫了一篇Autotools to CMake Transition Guide,本文將要列出的各個編譯選項以及更多的編譯選項的說明可以參考該文檔。在troubleshooting時,此文檔更是不得不看。編譯時間我習慣於一些選項(比如安裝位置)不按預設的來,因為如果按預設選項出了問題,更不好解決(因為到時你不僅需要知道到底有選項有何含義還要知道預設的是什麼,反而更麻煩)。進入解壓的原始碼目錄mysql-VERSION
代碼:cmake . \
-DCMAKE_INSTALL_PREFIX=/usr/mysql \
-DMYSQL_DATADIR=/usr/mysql/data
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DMYSQL_UNIX_ADDR=/tmp/mysqld.sock \
-DWITH_DEBUG=0 \
-DWITH_INNOBASE_STORAGE_ENGINE=1
一些主要的參數說明:
引用:選項名稱選項含義
DCMAKE_INSTALL_PREFIX安裝路徑
DMYSQL_DATADIR資料庫路徑
DDEFAULT_CHARSET預設字元
DDEFAULT_COLLATION預設字元集
DMYSQL_UNIX_ADDR串連資料庫socket路徑
DWITH_DEBUGbool值,表示是否開啟debug模式
在這裡我開始的時候有一個疏忽:只設定DDEFAULT_CHARSET而沒有設定DDEFAULT_COLLATION,因此總是出現
引用:COLLATION ‘latin1_swedish_ci‘ is not valid for CHARACTER SET ‘utf8‘
三、編譯安裝
代碼:sudo make
sudo make install
這個階段出現的問題機率較小。但是記得一定要以root許可權執行make和make install,因為填寫的安裝路徑不是home,而是/usr,必須有root許可權才能進行寫操作
四、安裝後的MySQL配置
出問題的地方主要是在這裡。出現問題的根源在於設定檔以及預設配置。由於是原始碼安裝且安裝的位置不是預設位置,因此有一些選項必須制定才能使MySQL正常運行
- 進入安裝後的目錄執行代碼:sudo chown -R mysql .代碼:chgrp -R mysql .代碼:sudo bin/scripts/mysql_install_db \
--user=mysql \
--basedir=/usr/mysql \
--datadir=/usr/mysql/data \
--no-defaults
- 切記後面有個–no-defaults選項,如果沒有該選項,則程式會自動載入預設的設定檔,而目前你還沒有完成設定檔的編寫,因此很可能載入的是錯誤的資訊。如果該指令能夠運行成功,那麼恭喜你,你的MySQLy可以成功的啟動了。如果這一步出現了錯誤,不要著急,相關的log以及mysqld的啟動資訊提供了足夠的資訊協助你trouble shooting(我就是這麼過來的…)完成之後再執行代碼:chown -R root .
chown -R mysql data這兩條指令應該是安全性考慮。
- 配置my.cnf——mysql的設定檔,這是很重要的一步,配置得當以後就不需要在啟動時寫上大段的參數了。
首先應該知道:MySQL尋找設定檔的路徑以及順序。最開始檢索的位置是/etc/my.cnf之後是/etc/mysql/my.cnf因此我們要做的就是在這兩個地方之一建立設定檔my.cnf。MySQL為我們準備了幾種不同方案的預設設定檔(在/usr/mysql/support-files/中),因此我們可以複製一份到上述的位置代碼:sudo cp /usr/mysql/support-files/my-medium.cnf /etc/mysql/my.cnf
通常我們是通過指令碼傳入適當的參數啟動mysqld。因此在/etc/mysql/my.cnf中加入如下的內容:引用:[mysqld]
basedir=/usr/mysql
datadir=/usr/mysql/data
user=mysql更多關於my.cnf的配置限於篇幅就不再講了,但為了日常的開發需要還應該繼續配置的,這部分內容就參考google搜尋以及MySQL Manual吧
五、設定開機自動啟動MySQL服務
這一部分講解如何添加MySQL在開機時自動啟動。MySQL Manual關於此部分的內容不準確,沒有涵蓋debian類的linux發行版的做法。
MySQL已經提供了預設的指令碼mysql.server(在[mysql安裝目錄]/support-files/),首先進入該目錄,嘗試運行該指令碼
代碼:sudo ./mysql.server start
運行正常的話則執行
代碼:sudo cp mysql.server /etc/init.d/mysql
Debian/Ubuntu上開機啟動服務的管理不是使用chkconfig,而使用的是sysv-rc-conf,嘗試執行
代碼:sudo sysv-rc-conf
若提示沒有安裝,則
代碼:sudo apt-get install sysv-rc-conf
之後運行即可,該工具採用的是圖形介面,很直觀在此就不介紹如何使用了,我們需要做的是找到【mysql】一欄,選定【3】【4】【5】這三列,這樣就完成了開機自動啟動MySQL daemon了。
MySQL的安裝就基本完成了,希望大家能和我一樣在“折騰”的過程中有所收穫,“痛並快樂著”!
原文連結:http://liuyix.com/install-mysql-on-ubuntu-10-04-from-source
ubuntu上安裝mysql 編譯安裝