linux上源碼安裝MySQL詳解,linuxmysql

來源:互聯網
上載者:User

linux上源碼安裝MySQL詳解,linuxmysql

最近需要使用MySQL Fabric,這貨是MySQL5.6.10之後才出現的utility。手頭機器裝的是MySQL5.1,所以需要先把舊版MySQL升級成5.6版本。之前沒有玩過MySQL,所以這次稍微費了點事。在此,把過程記錄下來,希望能給有需求的人提供一點協助。下面我們就正式開始。

1. 刪除老版本MySQL其實刪除老版MySQL是一件很簡單的事,但是開始時候由於擔心各個包的依賴會導致各種問題,亦步亦趨來得很慢。其實只需要做到這麼幾步就可以了:1.1 查看已安裝的mysql版本並刪除

查看已安裝的mysql版本:rpm -qa | grep -i mysql

只要將client/server兩個rpm包卸載就可以,過程中可能會提示某個包的依賴,加上--nodeps即可。

1.2 刪除資料檔案刪除/etc/my.cnf以及安裝目錄/usr/local/mysql/(該目錄位置是安裝時指定的)下的資料檔案。rm -r /etc/my.cnfrm -rf /usr/local/mysql1.3 查看當前是否有mysql在運行這一步經常會被忽視掉,所以需要稍微注意下。若有則kill掉。使用命令:ps -fe | grep mysql查看。
經過上面的三個步驟,基本就可以把舊版mysql卸載掉了。其他遺留部分在後續安裝新版mysql時,會提示有不相容的情況,到時候再逐個刪除即可。2. 源碼安裝MySQL5.6前提一:既然是源碼安裝,肯定要先下載一份MySQL源碼了。這個大家根據自己的需求下載,在此就不贅述了。前提二:安裝cmake。MySQL的編譯是使用的cmake,所以需要提前安裝好。這個過程也很簡單,就不說了。上面的準備工作都OK之後,就開始正式安裝的過程了。2.1 編譯與linux上其他的工程一樣,MySQL的編譯也就是make/make install。2.1.1 cmake在代碼路徑下執行:
cmake ./ -DCMAKE_INSTALL_PREFIX=/usr/local/mysql  \-DMYSQL_DATADIR=/usr/local/mysql/data             \-DSYSCONFDIR=/etc                                 \-DWITH_MYISAM_STORAGE_ENGINE=1                    \-DWITH_INNOBASE_STO…
上面的編譯參數,有幾個在後續的安裝過程中需要使用,在此說明一下。其他的可以不用管,直接複製即可。DCMAKE_INSTALL_PREFIX:MySQL的安裝路徑,安裝完成後就是MySQL的工作路徑。
DMYSQL_DATADIR:MySQL的資料檔案位置。
DSYSCONFDIR:MySQL的設定檔位置。
2.1.2 make && make install這個用過linux的都知道吧。。到此,編譯的過程就完成了。2.2 安裝
# cd /usr/local/mysql# chown -R mysql:mysql .# chown -R mysql:mysql ./data# scripts/mysql_install_db --defaults-file=/etc/my.cnf# cp support-files/my-default.cnf /etc/my.cnf
上面這些都是MySQL的配置過程,其中的路徑必須和上面cmake的參數保持一致。其中mysql的設定檔/etc/my.cnf需要注意,下面是我的設定檔,基本保持這樣就可以了。
[mysql]socket = /tmp/mysqld.sock[mysqld]user = mysqldatadir = /usr/local/mysql/dataport=3306
2.3 啟動MySQL有三種方法可以啟動MySQL,分別如下:
方法一:# bin/mysqld_safe --defaults-file=/etc/my.cnf方法二:# bin/mysqld方法三:cp support-files/msql.server /etc/init.d/mysqlservice mysql start
相信大家對第三種方法更熟悉,使用start|restart|stop來啟動/重啟/停止一個服務的操作,在linux中使用的十分廣泛。我也習慣使用這種方法,但是在使用過程中發現一個情況。 使用service mysql start時,如果服務啟動失敗,基本不會有什麼錯誤log輸出,所以想判斷是什麼原因導致的啟動失敗就比較困難。這時候推薦使用方法二來啟動,它會將錯誤原因輸出,對於勘誤難說容易的多。查看啟動是否成功:ps -ef | grep mysql2.4 修改root密碼
# ./bin/mysqladmin -u root password
兩遍輸入密碼即可。修改完密碼之後,需要重啟一下mysql。到此,MySQL從老版本升級的過程就完成了。
目前最新版的mysql在Linux下源碼編譯安裝的方法具體參數的含義一併說明

有話好說,以下是CentOS Linux 5的配置經驗:
添加mysql帳號
groupadd mysql
useradd -r -g mysql mysql
編譯必需先安裝
cmake-2.8.4 和 bison-2.4.3
安裝成功後解壓mysql-5.5.15.tar.gz:
在源碼根目錄開啟終端輸入以下配置參數並斷行符號
cmake -DCMAKE_INSTALL_PREFIX=/etc/mysql \
-DMYSQL_UNIX_ADDR=/etc/mysql/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS:STRING=utf8,gbk \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DMYSQL_DATADIR=/var/mysql/data \
-DMYSQL_USER=mysql

成功執行以下命令後在最後會見到 (/root/Desktop/是你的源碼目錄,視你的情況定)
-- Build files have been written to: /root/Desktop/mysql-5.5.15

運行make安裝:
make
make install
以下步驟就不一一解說了:
cd /mysql/mysql
chown -R mysql:mysql .
scripts/mysql_install_db --user=mysql
chown -R root .
chown -R mysql data
cp ./support-files/my-small.cnf ./my.cnf
cp support-files/mysql.server mysql; chmod +x mysql
chown -R mysql:root .
./mysql start
./bin/mysqladmin -u root -p 123456

添加開機啟動服務
chkconfig --add mysql
chkconfig mysql on
service mysql start

順利的話到這裡完成了,祝你成功。
 
linux中源碼方式安裝mysql的時為何要先建一個mysql使用者

為了安全。。這樣做的好處是,當別人黑了你的資料庫的時候,只能得到系統的mysql許可權,還得不到整個root的許可權。。這樣。。就安全多了。。不僅僅是mysql,像apache,等很多軟體都有這樣的設定。。說明這樣的軟體是好軟體。。
 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.