標籤:
MySQL可以支援多種平台,如Windows,UNIX,FreeBSD或其他Linux系統。本篇隨筆記錄在CentOS 7 上使用源碼安裝MySQL的過程。
1.下載源碼
選擇使用北理工的鏡像檔案:
在CentOS 7 中輸入如下命令:
[[email protected]:~/Downloads] # wget http://mirror.bit.edu.cn/mysql/Downloads/MySQL-5.6/mysql-5.6.31.tar.gz
2.解壓mysql源碼壓縮檔,並更新軟體源
3.安裝編譯所需軟體包
yum install -y make gcc-c++ cmake bison-devel ncurses-devel gcc autoconf automake zlib* fiex* libxml* libmcrypt* libtool-ltdl-devel*
結果顯示如下錯誤:
網上尋找應對 [Errno 256] 的辦法,使用如下命令:
yum clean allyum makecache
輸入這兩個命令後,重新下載那些編譯MySQL依賴的軟體包,這次一個一個安裝,不要所有軟體包都輸入在同一個命令列裡:
yum install -y makeyum install -y gcc-c++yum install -y cmake......
這次libxml* 安裝正常了,但是好像fiex* 的安裝還是存在問題,且不管了,繼續進行。
4. 使用cmake命令產生MakeFile
先產生/var/mysql/data 目錄:
mkdir -p /var/mysql/data
關於CMake的介紹見百度:http://baike.baidu.com/link?url=N-Yk2wK5C807vyXsK58_93dRocV_NIitJKug8925aUovJrKNQ2roUOuCxK2m1xC9u2Vpz6WjHG18bwQtZrhH4a
輸入如下命令:
[[email protected]:~/Downloads/mysql-5.7.13] # cmake > -DCMAKE_INSTALL_PREFIX=/usr/local/mysql > -DMYSQL_DATADIR=/var/mysql/data > -DSYSCONFDIR=/etc > -DWITH_MYISAM_STORAGE_ENGINE=1 > -DWITH_INNOBASE_STORAGE_ENGINE=1 > -DMYSQL_UNIX_ADDR=/tmp/mysql.sock > -DMYSQL_TCP_PORT=3306 > -DENABLED_LOCAL_INFILE=1 > -DEXTRA_CHARSETS=all > -DDEFAULT_CHARSET=utf8 > -DDEFAULT_COLLATION=utf8_general_ci
結果出現如下錯誤:
百度搜尋 CMake Error at cmake/boost.cmake:81 (MESSAGE),找到這麼一個網頁:http://www.cnblogs.com/chunguang/p/5553301.html
看到方法一太淩亂,就沒好好看,直接選擇了方法二----然而並沒有效果;
再仔細看剛才cmake的錯誤提示:
對比搜到的那個網頁的方法一,原來方法一跟cmake提示的一樣,就是多加上一句cmake條件而已:-DDOWNLOAD_BOOST=1 -DWITH_BOOST=/usr/local/boost
[[email protected]:~/Downloads/mysql-5.7.13] # cmake > -DCMAKE_INSTALL_PREFIX=/usr/local/mysql > -DMYSQL_DATADIR=/var/mysql/data > -DSYSCONFDIR=/etc > -DWITH_MYISAM_STORAGE_ENGINE=1 > -DWITH_INNOBASE_STORAGE_ENGINE=1 > -DMYSQL_UNIX_ADDR=/tmp/mysql.sock > -DMYSQL_TCP_PORT=3306 > -DENABLED_LOCAL_INFILE=1 > -DEXTRA_CHARSETS=all > -DDEFAULT_CHARSET=utf8 > -DDEFAULT_COLLATION=utf8_general_ci > -DDOWNLOAD_BOOST=1 \> -DWITH_BOOST=/usr/local/boost
CMake之,過程中出現如下畫面:
這回CMake成功:
5.編譯
該過程會花費大約30分鐘~~~~
[[email protected]:~/Downloads/mysql-5.6.31] # make
6.安裝
[[email protected]:~/Downloads/mysql-5.6.31] # make install
安裝過程大約5分鐘搞定吧。
7.添加使用者並設定許可權
[[email protected]:~/Downloads/mysql-5.6.31 ]# cd /usr/local/mysql#添加使用者[[email protected]:/usr/local/mysql ]# groupadd mysql[[email protected]:/usr/local/mysql ]# useradd -r -g mysql mysql#設定許可權以便mysql能修改檔案[[email protected]:/usr/local/mysql ]# chown -R mysql.mysql ./[[email protected]:/usr/local/mysql ]# chown -R mysql.mysql /var/mysql/data#初始化資料庫#需要注意,此處設定的資料目錄應該與之前MYSQL_DATADIR 指定的目錄相同[[email protected]:/usr/local/mysql ]# scripts/mysql_install_db --usr=mysql -ldata=/var/mysql/data
執行結果:
使用 ll 命令可以看到新產生了my.cnf 檔案
將my.cnf 備份
cp my.cnf my.cnf.backup
然後修改相應的目錄的許可權以便mysql修改:
[[email protected]: /usr/local/mysql]# chown -R root ./[[email protected]: /usr/local/mysql]# chown -R mysql data
關於編譯MySQL時的參數,這個網頁有詳細的說明:http://dev.mysql.com/doc/refman/5.6/en/source-configuration-options.html
8. 配置MySQL的設定檔,如下所示:
9. 設定MySQL為系統服務
(i)將啟動指令碼放到 /etc/init.d 目錄中
(ii)將 mysqld 添加為系統服務
(iii)啟動MySQL服務
出現如上所示錯誤
網上搜尋答案,http://blog.sina.com.cn/s/blog_637e04c9010117ri.html,http://www.jb51.net/article/48625.htm,想到可能是因為剛才設定了
[[email protected]: /usr/local/mysql]# chown -R mysql.mysql ./#後來又設定了[[email protected]: /usr/local/mysql]# chown -R root ./
而 my.cnf 設定檔沒有做正確的修改,按照剛才的錯誤提示,(The server quit without updating PID file (/var/mysql/data/javis)),修改my.cnf檔案如下:
再次啟動
成功!
(iv) 為 root 使用者佈建密碼
在第一個紅色方框處提示要輸入密碼,因為此時還沒有為root 使用者佈建密碼,所以什麼都不用輸入,直接按下斷行符號鍵。
設定密碼要按照第二個紅色方框處的格式來進行設定,密碼放在 password()的括弧裡,而且要用單引號包圍起來。
顯示正確後,輸入quit退出。
謹記 2016-07-04-Mon 20:11
CentOS 7營運管理筆記(10)----MySQL源碼安裝