1. 程式人生 > >Mysql原始碼安裝---mysql-5.5.20

Mysql原始碼安裝---mysql-5.5.20

一、下載原始碼包,百度雲盤:https://pan.baidu.com/s/1vEgAHCxNX5ctZi4VRhXBnA

二、將原始碼包放到/usr/src目錄

三、解壓原始碼包:tar -xzvf mysql-5.5.20.tar.gz

四、進入解壓後的目錄:cd mysql-5.5.20

五、安裝如下包:yum  install  cmake  ncurses-devel ncurses  gcc-c++ –y

六、預編譯:

cmake  .  -DCMAKE_INSTALL_PREFIX=/usr/local/mysql55/ \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DMYSQL_DATADIR=/data/mysql \ -DSYSCONFDIR=/etc \ -DMYSQL_USER=mysql \ -DMYSQL_TCP_PORT=3306 \ -DWITH_XTRADB_STORAGE_ENGINE=1 \ -DWITH_INNOBASE_STORAGE_ENGINE=1 \ -DWITH_PARTITION_STORAGE_ENGINE=1 \ -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \ -DWITH_MYISAM_STORAGE_ENGINE=1 \ -DWITH_READLINE=1 \ -DENABLED_LOCAL_INFILE=1
\ -DWITH_EXTRA_CHARSETS=1 \ -DDEFAULT_CHARSET=utf8 \ -DDEFAULT_COLLATION=utf8_general_ci \ -DEXTRA_CHARSETS=all \ -DWITH_BIG_TABLES=1 \ -DWITH_DEBUG=0

 

mysql引數解釋:
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql55 Cmake預編譯;-DMYSQL_UNIX_ADDR=/tmp/mysql.sock MYSQL Socket通訊檔案位置;
-DMYSQL_DATADIR=/data/mysql MYSQL資料存放路徑; -DSYSCONFDIR=/etc 配置檔案路徑; -DMYSQL_USER=mysql MYSQL執行使用者; -DMYSQL_TCP_PORT=3306 MYSQL監聽埠; -DWITH_XTRADB_STORAGE_ENGINE=1 開啟xtradb引擎支援; -DWITH_INNOBASE_STORAGE_ENGINE=1 開啟innodb引擎支援; -DWITH_PARTITION_STORAGE_ENGINE=1 開啟partition引擎支援; -DWITH_BLACKHOLE_STORAGE_ENGINE=1 開啟blackhole引擎支援; -DWITH_MYISAM_STORAGE_ENGINE=1 開啟MyISAM引擎支援; -DWITH_READLINE=1 啟用快捷鍵功能; -DENABLED_LOCAL_INFILE=1 允許從本地匯入資料; -DWITH_EXTRA_CHARSETS=1 支援額外的字符集; -DDEFAULT_CHARSET=utf8 預設字符集UTF-8-DDEFAULT_COLLATION=utf8_general_ci 檢驗字元; -DEXTRA_CHARSETS=all 安裝所有擴充套件字符集; -DWITH_BIG_TABLES=1 將臨時表儲存在磁碟上; -DWITH_DEBUG=0 禁止除錯模式支援; make 編譯; make install 安裝。

 

七、make -j4 && make -j4 install

八、安裝完成後,執行如下內容:

cd /usr/local/mysql55/

\cp support-files/my-large.cnf /etc/my.cnf    #複製配置檔案

\cp support-files/mysql.server /etc/init.d/mysqld    #新增到系統服務

chkconfig --add mysqld     #新增到開機自啟
chkconfig --level 345 mysqld on

mkdir -p  /data/mysql

useradd -M -s /sbin/nologin mysql

/usr/local/mysql55/scripts/mysql_install_db --user=mysql --datadir=/data/mysql/ --basedir=/usr/local/mysql55/  #安裝初始化

ln  -s  /usr/local/mysql55/bin/* /usr/bin/  #新增到環境變數

service  mysqld  restart

 九、只要在/etc/init.d/目錄下的檔案,都開始新增到系統服務,新增到開機自啟,使用services mysql start

十、配置檔案

[mysqld]                               //伺服器端配置
datadir=/data/mysql                       //資料目錄
socket=/var/lib/mysql/mysql.sock         //socket通訊設定  
user=mysql                             //使用mysql使用者啟動;
symbolic-links=0                      //是否支援快捷方式;
log-bin=mysql-bin                      //開啟bin-log日誌;
server-id = 1                          //mysql服務的ID;
auto_increment_offset=1                //自增長欄位從固定數開始;
auto_increment_increment=2                //自增長欄位每次遞增的量;
socket = /tmp/mysql.sock                 //為MySQL客戶程式與伺服器之間的本地通訊套接字檔案;
port             = 3306                  //指定MsSQL監聽的埠;
key_buffer       = 384M              //key_buffer是用於索引塊的緩衝區大小;
table_cache      = 512                   //為所有執行緒開啟表的數量;
sort_buffer_size = 2M                    //每個需要進行排序的執行緒分配該大小的一個緩衝區;
read_buffer_size = 2M                    //讀查詢操作所能使用的緩衝區大小。
query_cache_size = 32M                   //指定MySQL查詢結果緩衝區的大小
read_rnd_buffer_size    = 8M             //改引數在使用行指標排序之後,隨機讀;
myisam_sort_buffer_size = 64M            //MyISAM表發生變化時重新排序所需的緩衝;
thread_concurrency      = 8              //最大併發執行緒數,取值為伺服器邏輯CPU數量×2;
thread_cache            = 8              //快取可重用的執行緒數;
skip-locking                            //避免MySQL的外部鎖定,減少出錯機率增強穩定性。 
default-storage-engine=INNODB         //設定mysql預設引擎為Innodb;
#mysqld_safe config            
[mysqld_safe]                          //mysql服務安全啟動配置;
log-error=/var/log/mysqld.log              //mysql錯誤日誌路徑;
pid-file=/var/run/mysqld/mysqld.pid         //mysql PID程序檔案;
key_buffer_size = 2048MB                //MyISAM表索引緩衝區的大小;
max_connections = 3000                //mysql最大連線數;
innodb_buffer_pool_size    = 2048MB    //InnoDB記憶體緩衝資料和索引大小;
basedir      = /usr/local/mysql55/          //資料庫安裝路徑;
[mysqldump]                            //資料庫匯出段配置;
max_allowed_packet      =16M         //伺服器和客戶端傳送的最大資料包;

 

[mysqld]                           //伺服器端配置

datadir=/data/mysql                    //資料目錄

socket=/var/lib/mysql/mysql.sock       //socket通訊設定 

user=mysql                         //使用mysql使用者啟動;

symbolic-links=0                   //是否支援快捷方式;

log-bin=mysql-bin                  //開啟bin-log日誌;

server-id = 1                      //mysql服務的ID

auto_increment_offset=1            //自增長欄位從固定數開始;

auto_increment_increment=2             //自增長欄位每次遞增的量;

socket = /tmp/mysql.sock               //MySQL客戶程式與伺服器之間的本地通訊套接字檔案;

port             = 3306                //指定MsSQL監聽的埠;

key_buffer       = 384M            //key_buffer是用於索引塊的緩衝區大小;

table_cache      = 512                 //為所有執行緒開啟表的數量;

sort_buffer_size = 2M                  //每個需要進行排序的執行緒分配該大小的一個緩衝區;

read_buffer_size = 2M                  //讀查詢操作所能使用的緩衝區大小。

query_cache_size = 32M                 //指定MySQL查詢結果緩衝區的大小

read_rnd_buffer_size    = 8M           //改引數在使用行指標排序之後,隨機讀;

myisam_sort_buffer_size = 64M          //MyISAM表發生變化時重新排序所需的緩衝;

thread_concurrency      = 8            //最大併發執行緒數,取值為伺服器邏輯CPU數量×2

thread_cache            = 8            //快取可重用的執行緒數;

skip-locking                       //避免MySQL的外部鎖定,減少出錯機率增強穩定性。

default-storage-engine=INNODB         //設定mysql預設引擎為Innodb

#mysqld_safe config        

[mysqld_safe]                      //mysql服務安全啟動配置;

log-error=/var/log/mysqld.log          //mysql錯誤日誌路徑;

pid-file=/var/run/mysqld/mysqld.pid        //mysql PID程序檔案;

key_buffer_size = 2048MB           //MyISAM表索引緩衝區的大小;

max_connections = 3000             //mysql最大連線數;

innodb_buffer_pool_size  = 2048MB   //InnoDB記憶體緩衝資料和索引大小;

basedir      = /usr/local/mysql55/         //資料庫安裝路徑;

[mysqldump]                          //資料庫匯出段配置;

max_allowed_packet      =16M       //伺服器和客戶端傳送的最大資料包;