爲何要折騰?
首先說明的是ubuntu上安裝mysql等軟件是很是容易簡單的,其簡單的程度蓋過windows上的安裝,一句sudo apt-get install就能夠搞定。若是想用最簡便的方法安裝mysql,那麼本文不適合你;若是你喜歡「折騰」,有興趣瞭解這一條sudo apt-get install幫你作了什麼,有興趣瞭解internal linux的細節並想嘗試本身編譯軟件,那麼你是本文的目標讀者,但願你能從這篇文章中得到收穫。
編譯安裝的幾大步驟:mysql
- 編譯前的準備工做
- 初識CMAKE——配置MySQL編譯選項
- 編譯安裝
- 安裝後的MySQL配置
- 設置開機自動啓動MySQL服務
1、編譯前的準備工做linux
2、初識CMAKE——配置MySQL編譯選項
MySQL 5.5的編譯工具由Autotool轉變爲了cmake(有關於更多關於cmake的信息,請你們自行google瞭解)。MySQL團隊也撰寫了一篇Autotools to CMake Transition Guide,本文將要列出的各個編譯選項以及更多的編譯選項的說明能夠參考該文檔。在troubleshooting時,此文檔更是不得不看。編譯時我習慣於一些選項(好比安裝位置)不按默認的來,由於若是按默認選項出了問題,更很差解決(由於到時你不只須要知道到底有選項有何含義還要知道默認的是什麼,反而更麻煩)。進入解壓的源代碼目錄mysql-VERSIONsql
代碼:
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
一些主要的參數說明:chrome
引用:
選項名稱 選項含義
DCMAKE_INSTALL_PREFIX 安裝路徑
DMYSQL_DATADIR 數據庫路徑
DDEFAULT_CHARSET 默認字符
DDEFAULT_COLLATION 默認字符集
DMYSQL_UNIX_ADDR 鏈接數據庫socket路徑
DWITH_DEBUG bool值,表示是否開啓debug模式
在這裏我開始的時候有一個疏忽:只設置DDEFAULT_CHARSET而沒有設置DDEFAULT_COLLATION,所以老是出現數據庫
引用:
COLLATION 'latin1_swedish_ci' is not valid for CHARACTER SET 'utf8'
3、編譯安裝ubuntu
代碼:
sudo make
sudo make install
這個階段出現的問題機率較小。可是記得必定要以root權限執行make和make install,由於填寫的安裝路徑不是home,而是/usr,必須有root權限才能進行寫操做
4、安裝後的MySQL配置
出問題的地方主要是在這裏。出現問題的根源在於配置文件以及默認配置。因爲是源代碼安裝且安裝的位置不是默認位置,所以有一些選項必須制定才能使MySQL正常運行windows
- 進入安裝後的目錄執行
代碼:
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吧
5、設置開機自動啓動MySQL服務
這一部分講解如何添加MySQL在開機時自動啓動。MySQL Manual關於此部分的內容不許確,沒有涵蓋debian類的linux發行版的作法。
MySQL已經提供了默認的腳本mysql.server(在[mysql安裝目錄]/support-files/),首先進入該目錄,嘗試運行該腳本安全
代碼:
sudo ./mysql.server start
運行正常的話則執行socket
代碼:
sudo cp mysql.server /etc/init.d/mysql
Debian/Ubuntu上開機啓動服務的管理不是使用chkconfig,而使用的是sysv-rc-conf,嘗試執行ide
代碼:
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