本文系統Centos6.0
其實一般本人安裝自己使用的系統的時候都會安裝軟體工作站,然後進行更新所有包;安裝其他軟體的時候少了很多的依賴關係,少了很多麻煩;這裡本人故意安裝最小化的系統進行源碼包安裝mysql5.6;只為記錄其中遇到的問題進行解決;
1、安裝yum源;
[root@bogon ~]# rpm -vhi ftp://ftp.univie.ac.at/systems/linux/fedora/epel/beta/6/i386/epel-release-6-5.noarch.rpm
2、安裝編譯環境:
[root@bogon ~]# yum install wget gcc* make -y
[root@bogon ~]# ls *gzcmake-2.8.11.2.tar.gz mysql-5.6.12.tar.gz
3、首先安裝cmake
tar zxvf cmake-2.8.11.2.tar.gz cd cmake-2.8.11.2./bootstrapmakemake install
4、安裝mysql
useradd -s /sbin/nologin mysqlmkdir /datachown -R mysql.mysql /datatar zxvf mysql-5.6.12.tar.gzcd mysql-5.6.12[root@bogon mysql-5.6.12]# cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DWITH_SSL:STRING=bundled -DWITH_ZLIB:STRING=bundled -DWITH_LIBWARP=0 -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DEXTRA_CHARSETS=all
提示報錯;
650) this.width=650;" src="http://www.bkjia.com/uploads/allimg/131228/220J01308-0.jpg" title="3.jpg" />
安裝相關包
yum install openssl openssl-devel ncurses ncurses-devel -y
重新編譯
rm -rf CMakeCache.txt[root@bogon mysql-5.6.12]# cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DWITH_SSL:STRING=bundled -DWITH_ZLIB:STRING=bundled -DWITH_LIBWARP=0 -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_cimakemake install cp support-files/mysql.server /etc/init.d/mysqldchmod +x /etc/init.d/mysqldchkconfig --add mysqldchkconfig mysqld on
5、調整lib庫路徑:將mysql的庫檔案路徑:“/usr/local/mysql/lib/mysql” 加入帶系統的庫檔案搜尋路徑中
[root@bogon mysql]# vim /etc/ld.so.conf.d/mysql.conf/usr/local/mysql/lib
ldconfig //重新整理,使修改生效
6、設定mysql程式的執行路徑:
[root@bogon mysql]# vim /etc/profile.d/mysql.shexport PATH=$PATH:/usr/local/mysql/bin[root@bogon mysql]# source /etc/profile
7、將mysql的man文檔輸入到系統手冊;
yum install manvim /etc/man.configMANPATH /usr/local/mysql/man
8、輸出mysql的標頭檔到系統標頭檔
ln -sv /usr/local/mysql/include/ /usr/include/mysql
9、編輯my.cnf檔案;然後進行初始化
[root@bogon mysql]# vim /etc/my.cnf[mysqld]datadir=/datasocket=/tmp/mysql.sockuser=mysqlserver-id=1log-bin=mysql-binreport-port=3306port=3306# Disabling symbolic-links is recommended to prevent assorted security riskssymbolic-links=0[mysqld_safe]log-error=/var/log/mysqld.logpid-file=/var/run/mysqld/mysqld.pid
/usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/data --user=mysql
650) this.width=650;" src="http://www.bkjia.com/uploads/allimg/131228/220J0I46-1.jpg" title="快照4.jpg" />
至此安裝完畢;下面說明相關編譯參數:
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql #安裝目錄-DMYSQL_DATADIR=/data #資料庫存放目錄-DSYSCONFDIR=/etc #MySQL配輯檔案-DWITH_MYISAM_STORAGE_ENGINE=1 #安裝myisam儲存引擎-DWITH_INNOBASE_STORAGE_ENGINE=1 #安裝innodb儲存引擎-DWITH_ARCHIVE_STORAGE_ENGINE=1 #安裝archive儲存引擎-DWITH_BLACKHOLE_STORAGE_ENGINE=1 #安裝blackhole儲存引擎-DWITH_LOCAL_INFILE=1 #允許從本地匯入資料-DWITH_READLINE=1 #快速鍵功能-DMYSQL_UNIX_ADDR=/tmp/mysql.sock #Unix socket 檔案路徑-DDEFAULT_CHARSET=utf8 #預設字元-DDEFAULT_COLLATION=utf8_general_ci #校正字元-DEXTRA_CHARSETS=all #安裝所有擴充字元集-DMYSQL_TCP_PORT=3306 -DMYSQL_USER=mysql 、-DWITH_SSL=yes -DWITH_MEMORY_STORAGE_ENGINE=1 #安裝memory儲存引擎-DWITH_FEDERATED_STORAGE_ENGINE=1 #安裝frderated儲存引擎
再下面是my.cnf的一些配置項:
[client]port = 3309socket = /home/mysql/mysql/tmp/mysql.sock[mysqld]!include /home/mysql/mysql/etc/mysqld.cnf #包含的設定檔 ,把使用者名稱,密碼檔案單獨存放port = 3309socket = /home/mysql/mysql/tmp/mysql.sockpid-file = /usr/local/mysql/var/mysql.pidbasedir = /home/mysql/mysql/datadir = /usr/local/mysql/mysql/mysql/var/# tmp dir settingstmpdir = /home/mysql/mysql/tmp/slave-load-tmpdir = /home/mysql/mysql/tmp/#當slave 執行 load data infile 時用#language = /home/mysql/mysql/share/mysql/english/character-sets-dir = /home/mysql/mysql/share/mysql/charsets/# skip optionsskip-name-resolve #grant 時,必須使用ip不能使用主機名稱skip-symbolic-links #不能使用串連檔案skip-external-locking #不使用系統鎖定,要使用myisamchk,必須關閉伺服器skip-slave-start #啟動mysql,不啟動複製#sysdate-is-now# res settingsback_log = 50 #接受隊列,對於沒建立tcp串連的請求隊列放入緩衝中,隊列大小為back_log,受限制與OS參數max_connections = 1000 #最大並發串連數 ,增大該值需要相應增加允許開啟的檔案描述符數max_connect_errors = 10000 #如果某個使用者發起的串連error超過該數值,則該使用者的下次串連將被阻塞,直到管理員執行flush hosts ; 命令;防止駭客#open_files_limit = 10240connect-timeout = 10 #連線逾時之前的最大秒數,在Linux平台上,該逾時也用作等待伺服器首次回應的時間wait-timeout = 28800 #等待關閉串連的時間interactive-timeout = 28800 #關閉串連之前,允許interactive_timeout取代了wait_timeout)秒的不啟用時間。用戶端的會話wait_timeout變數被設為會話interactive_timeout變數的值。slave-net-timeout = 600 #從伺服器也能夠處理網路連接中斷。但是,只有從伺服器超過slave_net_timeout秒沒有從主伺服器收到資料才通知網路中斷net_read_timeout = 30 #從伺服器讀取資訊的逾時net_write_timeout = 60 #從伺服器寫入資訊的逾時net_retry_count = 10 #如果某個通訊連接埠的讀操作中斷了,在放棄前重試多次net_buffer_length = 16384 #包訊息緩衝區初始化為net_buffer_length位元組,但需要時可以增長到max_allowed_packet位元組max_allowed_packet = 64M ##table_cache = 512 #所有線程開啟的表的數目。增大該值可以增加mysqld需要的檔案描述符的數量thread_stack = 192K #每個線程的堆棧大小thread_cache_size = 20 #線程緩衝thread_concurrency = 8 #同時啟動並執行線程的資料 此處最好為CPU個數兩倍。本機配置為CPU的個數# qcache settingsquery_cache_size = 256M #查詢快取大小query_cache_limit = 2M #不緩衝查詢大於該值的結果query_cache_min_res_unit = 2K #查詢快取分配的最小塊大小# default settings# time zonedefault-time-zone = system #伺服器時區character-set-server = utf8 #server層級字元集default-storage-engine = InnoDB #預設儲存# tmp & heaptmp_table_size = 512M #暫存資料表大小,如果超過該值,則結果放到磁碟中max_heap_table_size = 512M #該變數設定MEMORY (HEAP)表可以增長到的最大空間大小log-bin = mysql-bin #這些路徑相對於datadirlog-bin-index = mysql-bin.indexrelayrelay-log = relay-logrelayrelay_log_index = relay-log.index# warning & error loglog-warnings = 1log-error = /home/mysql/mysql/log/mysql.errlog_output = FILE #參數log_output指定了慢查詢輸出的格式,預設為FILE,你可以將它設為TABLE,然後就可以查詢mysql架構下的slow_log表了# slow query logslow_query_log = 1long-query-time = 1 #慢查詢時間 超過1秒則為慢查詢slow_query_log_file = /home/mysql/mysql/log/slow.log#log-queries-not-using-indexes#log-slow-slave-statementsgeneral_log = 1general_log_file = /home/mysql/mysql/log/mysql.logmax_binlog_size = 1Gmax_relay_log_size = 1G# if use auto-ex, set to 0relay-log-purge = 1 #當不用中繼日誌時,刪除他們。這個操作有SQL線程完成# max binlog keeps daysexpire_logs_days = 30 #超過30天的binlog刪除binlog_cache_size = 1M #session層級# replicationreplicate-wild-ignore-table = mysql.% #複製時忽略資料庫及表replicate-wild-ignore-table = test.% #複製時忽略資料庫及表# slave_skip_errors=allkey_buffer_size = 256M #myisam索引buffer,只有key沒有datasort_buffer_size = 2M #排序buffer大小;線程層級read_buffer_size = 2M #以全表掃描(Sequential Scan)方式掃描資料的buffer大小 ;線程層級join_buffer_size = 8M # join buffer 大小;線程層級read_rnd_buffer_size = 8M #MyISAM以索引掃描(Random Scan)方式掃描資料的buffer大小 ;線程層級bulk_insert_buffer_size = 64M #MyISAM 用在塊插入最佳化中的樹緩衝區的大小。注釋:這是一個per thread的限制myisam_sort_buffer_size = 64M #MyISAM 設定恢複表之時使用的緩衝區的尺寸,當在REPAIR TABLE或用CREATE INDEX建立索引或ALTER TABLE過程中排序 MyISAM索引分配的緩衝區myisam_max_sort_file_size = 10G #MyISAM 如果臨時檔案會變得超過索引,不要使用快速排序索引方法來建立一個索引。注釋:這個參數以位元組的形式給出.重建MyISAM索引(在REPAIR TABLE、ALTER TABLE或LOAD DATA INFILE過程中)時,允許MySQL使用的臨時檔案的最大空間大小。如果檔案的大小超過該值,則使用索引值緩衝建立索引,要慢得多。該值的單位為位元組myisam_repair_threads = 1 #如果該值大於1,在Repair by sorting過程中並行建立MyISAM表索引(每個索引在自己的線程內)myisam_recover = 64K#允許的GROUP_CONCAT()函數結果的最大長度transaction_isolation = REPEATABLE-READinnodb_file_per_table#innodb_status_file = 1#innodb_open_files = 2048innodb_additional_mem_pool_size = 100M #幀緩衝的控制對象需要從此處申請緩衝,所以該值與innodb_buffer_pool對應innodb_buffer_pool_size = 2G #包括資料頁、索引頁、插入緩衝、鎖資訊、自適應雜湊所以、資料字典資訊innodb_data_home_dir = /usr/local/mysql/var/#innodb_data_file_path = ibdata1:1G:autoextendinnodb_data_file_path = ibdata1:500M;ibdata2:2210M:autoextend #資料表空間innodb_file_io_threads = 4 #io線程數innodb_thread_concurrency = 16 #InnoDB試著在InnoDB內保持作業系統線程的數量少於或等於這個參數給出的限制innodb_flush_log_at_trx_commit = 1 #每次commit 日誌緩衝中的資料刷到磁碟中innodb_log_buffer_size = 8M #事物日誌緩衝innodb_log_file_size = 500M #事物日誌大小#innodb_log_file_size =100Minnodb_log_files_in_group = 2 #兩組事物日誌innodb_log_group_home_dir = /usr/local/mysql/mysql/var/#日誌組innodb_max_dirty_pages_pct = 90 #innodb主線程重新整理緩衝池中的資料,使髒資料比例小於90%innodb_lock_wait_timeout = 50 #InnoDB事務在被復原之前可以等待一個鎖定的逾時秒數。InnoDB在它自己的 鎖定表中自動檢測事務死結並且復原事務。InnoDB用LOCK TABLES語句注意到鎖定設定。預設值是50秒#innodb_flush_method = O_DSYNC[mysqldump]quickmax_allowed_packet = 64M[mysql]disable-auto-rehash #允許通過TAB鍵提示default-character-set = utf8connect-timeout = 3
本文出自 “Coffee_藍山” 部落格,請務必保留此出處http://lansgg.blog.51cto.com/5675165/1259347