開源服務專題之--------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 distributionCopyright (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