1:mysql性能卓越,服務穩定,不多出現異常宕機php
2:mysql開源免費,無版權制約,自主性及使用成本低mysql
3:產品耦合度,mysql支持多種操做系統,支持多開發語言,特別是phpnginx
4:技術積累,龐大的活躍的社區,算法
5:軟件體積小,安裝簡單,易於維護sql
MySQL官網http://www.mysql.com/,MySQL版本採用雙受權政策,和大多數開源產品路線同樣,分爲社區版和商業版,而且這兩個版本又分別分紅四個版本依次發佈,Alpha版、Beta版、RC版和GA版數據庫
GA版即爲正式版vim
1) 首先價格上,社區版徹底免費,企業版須要高額的費用安全
2) 技術上,企業版具備MySQL企業級服務器、MySQL企業級系統監控工具。企業版通過嚴格的測試認證,相對企業版,社區版的開發測試環境沒有那麼嚴格服務器
3)服務方面,社區版mysql官方不提供任何技術支持,使用過程出現任何意外不負任何責任,企業版與之相反ide
4)商業版不支持GPL協議
三條產品線
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版本的性能和穩定性,這個版本比較少公司用,緣由是出來太晚了
1:選擇穩定版 選擇社區的GA版
2:產品線,主要是5.1和5.5 ,多數5.5
3:選擇MySQL GA版發佈6個月以上的版本
4:最好向後較長時間沒有更新發布的版本
5:與開發人員使用版本的兼容
6:測試環境跑3-6個月
7:到生產環境非核心業務跑幾個月
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爲例。
[root@xiaolyu76 ~]# yum install cmake -y
[root@xiaolyu76 ~]# wget http://ftp.ntu.edu.tw/pub/MySQL/Downloads/MySQL-5.5/mysql-5.5.32.tar.gz
[root@xiaolyu76 ~]# yum install ncurses-devel –y //用於終端操做的開發包
[root@xiaolyu76 ~]# useradd -u 8001 -s /sbin/nologin mysql
[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
[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
[root@xiaolyu76 mysql-5.5.32]# cp support-files/my-large.cnf /etc/my.cnf
[root@xiaolyu76 mysql-5.5.32]# echo 'export PATH=/usr/local/mysql/bin:$PATH' >>/etc/profile [root@xiaolyu76 mysql-5.5.32]# source !$
[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 //添加開機啓動
[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就成功
[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服務
[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;
//建立system用戶賦予它在任何服務器上登陸的權限。 %表明任意的server。localhost只能在本機上登陸。
建立game數據庫,並用system用戶在宿主機上用第三方工具登陸
create database game;
ok, 測試成功,代表我前面的mysql數據庫cmake編譯安裝成功。