mysql通用二進制包安裝

新建mysql用戶及數據目錄:

# groupadd -r mysql
# useradd -g mysql -r -s /sbin/nologin -M -d /data/mysql mysql
# chown -R mysql:mysql /data/mysql

提取安裝:

# tar xf mysql-5.6.30-linux-glibc2.5-x86_64.tar.gz -C /usr/local
# cd /usr/local/
# ln -sv mysql-5.6.30-linux-glibc2.5-x86_64  mysql
# cd mysql

初始化:

# chown -R root:mysql  .
# scripts/mysql_install_db --user=mysql --datadir=/data/mysql  #5.6版本
# ./bin/mysqld --initialize --user=mysql --datadir=/data/mysql  #5.7版本

my.cnf文件註釋:

[client] 
port = 3309
socket = /home/mysql/mysql/tmp/mysql.sock 
[mysqld] 
!include /home/mysql/mysql/etc/mysqld.cnf #包含的配置文件 ,把用戶名,密碼文件單獨存放 
port = 3309
socket = /home/mysql/mysql/tmp/mysql.sock 
pid-file = /longxibendi/mysql/mysql/var/mysql.pid 
basedir = /home/mysql/mysql/ 
datadir = /longxibendi/mysql/mysql/var/ 
# tmp dir settings 
tmpdir = /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 options 
skip-name-resolve #grant 時,必須使用ip不能使用主機名 
skip-symbolic-links #不能使用鏈接文件 
skip-external-locking #不使用系統鎖定,要使用myisamchk,必須關閉服務器 
skip-slave-start #啓動mysql,不啓動複製 
#sysdate-is-now 
# res settings 
back_log = 50 #接受隊列,對於沒創建tcp鏈接的請求隊列放入緩存中,隊列大小爲back_log,受限制與OS參數 
max_connections = 1000 #最大併發鏈接數 ,增大該值須要相應增長容許打開的文件描述符數 
max_connect_errors = 10000 #若是某個用戶發起的鏈接error超過該數值,則該用戶的下次鏈接將被阻塞,直到管理員執行flush hosts ; 命令;防止黑客 
#open_files_limit = 10240
connect-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 settings 
query_cache_size = 256M #查詢緩存大小 
query_cache_limit = 2M #不緩存查詢大於該值的結果 
query_cache_min_res_unit = 2K #查詢緩存分配的最小塊大小 
# default settings 
# time zone 
default-time-zone = system #服務器時區 
character-set-server = utf8 #server級別字符集 
default-storage-engine = InnoDB #默認存儲 
# tmp & heap 
tmp_table_size = 512M #臨時表大小,若是超過該值,則結果放到磁盤中 
max_heap_table_size = 512M #該變量設置MEMORY (HEAP)表能夠增加到的最大空間大小 
log-bin = mysql-bin #這些路徑相對於datadir 
log-bin-index = mysql-bin.index 
relayrelay-log = relay-log 
relayrelay_log_index = relay-log.index 
# warning & error log 
log-warnings = 1
log-error = /home/mysql/mysql/log/mysql.err 
log_output = FILE #參數log_output指定了慢查詢輸出的格式,默認爲FILE,你能夠將它設爲TABLE,而後就能夠查詢mysql架構下的slow_log表了 
# slow query log 
slow_query_log = 1
long-query-time = 1 #慢查詢時間 超過1秒則爲慢查詢 
slow_query_log_file = /home/mysql/mysql/log/slow.log 
#log-queries-not-using-indexes 
#log-slow-slave-statements 
general_log = 1
general_log_file = /home/mysql/mysql/log/mysql.log 
max_binlog_size = 1G
max_relay_log_size = 1G
# if use auto-ex, set to 0 
relay-log-purge = 1 #當不用中繼日誌時,刪除他們。這個操做有SQL線程完成 
# max binlog keeps days 
expire_logs_days = 30 #超過30天的binlog刪除 
binlog_cache_size = 1M #session級別 
# replication 
replicate-wild-ignore-table = mysql.% #複製時忽略數據庫及表 
replicate-wild-ignore-table = test.% #複製時忽略數據庫及表 
# slave_skip_errors=all
key_buffer_size = 256M #myisam索引buffer,只有key沒有data 
sort_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-READ 
innodb_file_per_table 
#innodb_status_file = 1
#innodb_open_files = 2048
innodb_additional_mem_pool_size = 100M #幀緩存的控制對象須要今後處申請緩存,因此該值與innodb_buffer_pool對應 
innodb_buffer_pool_size = 2G #包括數據頁、索引頁、插入緩存、鎖信息、自適應哈希因此、數據字典信息 
innodb_data_home_dir = /longxibendi/mysql/mysql/var/ 
#innodb_data_file_path = ibdata1:1G:autoextend 
innodb_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 =100M
innodb_log_files_in_group = 2 #兩組事物日誌 
innodb_log_group_home_dir = /longxibendi/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] 
quick 
max_allowed_packet = 64M
[mysql] 
disable-auto-rehash #容許經過TAB鍵提示 
default-character-set = utf8
connect-timeout = 3

PS:官方文檔:http://dev.mysql.com/doc/refman/5.7/en/server-system-variables.htmlhtml

後續配置:

  • 添加服務腳本:mysql

# cp /usr/local/mysql/support-files/mysql.server  /etc/rc.d/init.d/mysqld
# chmod +x /etc/rc.d/init.d/mysqld
  • 添加至服務列表:linux

# chkconfig --add mysqld
# chkconfig mysqld on
  • 添加bin 目錄到PATH 環境變量中, 編輯/etc/profile.d/mysql.shsql

PATH=$PATH:/usr/local/mysql/bin
  • 添加MAN 手目錄到/etc/man.config數據庫

MANPATH  /usr/local/mysql/man
  • 輸出頭文件至系統頭文件路徑/usr/include, 經過建立連接實現緩存

ln -sv /usr/local/mysql/include  /usr/include/mysql
  • 添加軟件的庫文件路經到/etc/ld.so.conf.d/mysql.conf 下的單獨文件中服務器

# echo '/usr/local/mysql/lib' > /etc/ld.so.conf.d/mysql.conf
# ldconfig #重載系統庫
相關文章
相關標籤/搜索