開源服務專題之--------mysql的編譯安裝

GraGDGA 8年前發布 | 7K 次閱讀 MySQL 開源

為什么選擇MySQL

1:mysql性能卓越,服務穩定,很少出現異常宕機

2:mysql開源免費,無版權制約,自主性及使用成本低

3:產品耦合度,mysql支持多種操作系統,支持多開發語言,特別是php

4:技術積累,龐大的活躍的社區,

5:軟件體積小,安裝簡單,易于維護

MySQL數據庫分類與版本升級

MySQL官網http://www.mysql.com/,MySQL版本采用雙授權政策,和大多數開源產品路線一樣,分為社區版和商業版,并且這兩個版本又分別分成四個版本依次發布,Alpha版、Beta版、RC版和GA版

GA版即為正式版

1:社區版和企業版的區別

1) 首先價格上,社區版完全免費,企業版需要高額的費用

2) 技術上,企業版具有MySQL企業級服務器、MySQL企業級系統監控工具。企業版經過嚴格的測試認證,相對企業版,社區版的開發測試環境沒有那么嚴格

3)服務方面,社區版mysql官方不提供任何技術支持,使用過程出現任何意外不負任何責任,企業版與之相反

4)商業版不支持GPL協議

2:MySQL產品路線

三條產品線

1)5.0.XX到5.1.XX產品系列

這條產品線繼續完善改進用戶體驗和性能,同時增加新功能,是mysql早期產品的延續,如rhel6自帶的mysql

2)5.4.XX開始到5.7.XX產品系列

mysql社區和第三方公司percona整合的,吸收新的算法和存儲引擎,現在已經到了5.6.26

3)6.0.XX到7.X.XX產品系列

主要是為了更好的推廣MySQL Cluster版本,提供Cluster版本的性能和穩定性,這個版本比較少公司用,原因是出來太晚了

MySQL安裝

生產環境怎么選擇MySQL版本

1:選擇穩定版 選擇社區的GA版

2:產品線,主要是5.1和5.5 ,多數5.5

3:選擇MySQL GA版發布6個月以上的版本

4:最好向后較長時間沒有更新發布的版本

5:與開發人員使用版本的兼容

6:測試環境跑3-6個月

7:到生產環境非核心業務跑幾個月

MySQL 安裝方法

1 :使用二進制方式安裝, rpm/yum

2: 源碼編譯,產品線路 1 用普通編譯安裝,線路 2 用 cmake 編譯安裝 5.5/6/7

3 :批量部署, src.rpm  通過 spec 文件

環境:CentOS6.5x86-64(此為本文環境,但實際上包括但不限于),提前配置好本地和在線yum源,準備好mysql的源碼包(本文mysql-5.5.32)

源碼編譯安裝普通的編譯安裝,在nginx中已經給出了詳細的過程,本文將重點講述mysql的cmake的編譯安裝,以mysql-5.5.32為例。

1.安裝 cmake 編譯工具

[root@xiaolyu76 ~]# yum install cmake -y

2.下載 MySQL

[root@xiaolyu76 ~]# wget http://ftp.ntu.edu.tw/pub/MySQL/Downloads/MySQL-5.5/mysql-5.5.32.tar.gz

3. 安裝依賴包

[root@xiaolyu76 ~]# yum install ncurses-devel –y    //用于終端操作的開發包

4. 添加用戶

[root@xiaolyu76 ~]# useradd -u 8001 -s /sbin/nologin mysql

5. 創建數據庫存放目錄

[root@xiaolyu76 ~]# mkdir /data
[root@xiaolyu76 ~]# tar zxf mysql-5.5.32.tar.gz
[root@xiaolyu76 ~]# cd mysql-5.5.32
[root@xiaolyu76 mysql-5.5.32]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_UNIX_ADDR=/tmp/mysql.sock-DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci-DWITH_EXTRA_CHARSETS=all -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1-DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1-DMYSQL_DATADIR=/data -DMYSQL_USER=mysql
utf8 -DDEFAULT_COLLATION=utf8_general_ci-DWITH_EXTRA_CHARSETS=all -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1-DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1-DMYSQL_DATADIR=/data -DMYSQL_USER=mysql
[root@xiaolyu76 mysql-5.5.32]# make -j 4 && make install -j 4 
//指使用4個cpu核心數,如我們的雙核四線程,就可以寫4

參數說明:

-DCMAKE_INSTALL_PREFIX           數據文件存放目錄

-DMYSQL_UNIX_ADDR                sock 文件路徑

-DDEFAULT_CHARSET                 默認字符集

-DDEFAULT_COLLATION       默認字符校對

-DWITH_EXTRA_CHARSETS         擴展字符支持   默認 all

-DWITH_storage_STORAGE_ENGINE    存儲引擎的支持 , 默認支持 MyISAM,MERGE,MEMORY,CVS 存儲引擎

-DENABLED_LOCAL_INFILE=1         啟用加載本地數據

-DMYSQL_DATADIR                  數據存放目錄

-DMYSQL_USER                     mysql 運行用戶

擴展:

-DWITH_PARTITION_STORAGE_ENGINE=1   支持分區表

-DINSTALL_LIBDIR= dir_name

-DSYSCONFDIR= dir_name    The default my.cnf option file directory

7. 授權用戶

[root@xiaolyu76 mysql-5.5.32]# chown -R mysql:mysql /usr/local/mysql/
[root@xiaolyu76 mysql-5.5.32]# chown -R mysql:mysql /data
[root@xiaolyu76 mysql-5.5.32]# chmod 1777 /tmp

8. 創建配置文件

[root@xiaolyu76 mysql-5.5.32]# cp support-files/my-large.cnf /etc/my.cnf

9. 設置環境變量

[root@xiaolyu76 mysql-5.5.32]# echo 'export PATH=/usr/local/mysql/bin:$PATH' >>/etc/profile 
[root@xiaolyu76 mysql-5.5.32]# source !$

10. 創建服務啟動腳本,添加開機啟動

[root@xiaolyu76 mysql-5.5.32]# cp support-files/mysql.server/etc/init.d/mysqld 
[root@xiaolyu76 mysql-5.5.32]# chmod +x /etc/init.d/mysqld //給腳本添加執行權限 
[root@xiaolyu76 mysql-5.5.32]# vim /etc/init.d/mysqld

//服務啟動腳本要修改以下兩個參數 basedir=/usr/local/mysql //MySQL安裝目錄 datadir= /data //數據存放目錄

[root@xiaolyu76 mysql-5.5.32]# chkconfig mysqld on //添加開機啟動 </pre>

11. 初始化數據庫

[root@xiaolyu76 mysql-5.5.32]# chmod +x scripts/mysql_install_db 
[root@xiaolyu76 mysql-5.5.32]# /usr/local/mysql/scripts/mysql_install_db --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql --datadir=/data--user=mysql

//看到兩個ok就成功 </pre>

12. 初始化安全配置

[root@xiaolyu76 mysql-5.5.32]#  service mysqld start  //啟動mysql服務。
[root@xiaolyu76 mysql-5.5.32]#  service mysqld status  //察看mysql服務的狀態
[root@xiaolyu76 mysql-5.5.32]#  mysql_secure_installation  安全初始化配置

//注意: 初始化安全配置之前,一定要啟動mysql服務 </pre>

13. 創建用戶和數據庫

[root@xiaolyu76 mysql-5.5.32]# mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 19
Server version: 5.5.32-log Source distribution

Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> grant all privileges on . to system@'%' identified by '123456' with grant option; </pre>

//創建system用戶賦予它在任何服務器上登錄的權限。 %代表任意的server。localhost只能在本機上登錄。

14. 測試mysql是否安裝成功

創建game數據庫,并用system用戶在宿主機上用第三方工具登錄

create database game; 

ok, 測試成功,表明我前面的mysql數據庫cmake編譯安裝成功。

 

來自:http://www.cnblogs.com/jasmine-Jobs/p/5971878.html

 

 本文由用戶 GraGDGA 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!