程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> mysql-5.6.31安裝(單實例 Linux),mysql-5.6.31linux

mysql-5.6.31安裝(單實例 Linux),mysql-5.6.31linux

編輯:MySQL綜合教程

mysql-5.6.31安裝(單實例 Linux),mysql-5.6.31linux


安裝版本:mysql-5.6.31

安裝環境:Linux RHEL6.5.x86

安裝要求:單實例,端口為默認:3306
              (1) 要求安裝Mysql數據庫版本號及包名為:mysql-5.6.31.tar.gz
              (2) 安裝目錄為/usr/local/mysql
              (3) 數據存儲目錄為/data/mysqldb/
              (4) 配置文件存放為/etc/my.cnf
              (5) 用戶名為mysql
              (6) 要求設置環境變量,服務加入開機自動啟動

 


環境准備

1. 安裝相關依賴包

# yum install gcc* ncurses-devel perl cmake bison

 

2. 創建用戶和相關目錄

創建mysql用戶組
# groupadd mysql

創建mysql用戶(屬組為mysql,為不能登錄shell) # useradd mysql -g mysql -s /sbin/nologin

創建mysql安裝目錄 # mkdir -p /usr/local/mysql
創建mysql數據目錄
# mkdir -p /data/mysqldb

在數據目錄下創建BINLOG日志目錄 # mkdir /data/mysqldb/binlog

在數據目錄下創建日常LOG日志目錄 # mkdir /data/mysqldb/log

創建mysql臨時表目錄 # mkdir /opt/mysqltmp

 

3. 編譯安裝

# cmake 
設置mysql安裝目錄
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql/

設置監聽套接字路徑,這必須是一個絕對路徑名。默認為/tmp/mysql.sock
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock

設置配置文件放在/etc/下面
-DSYSCONFDIR=/etc

設置服務器的字符集(缺省情況下,MySQL使用latin1的(CP1252西歐)字符集。cmake/character_sets.cmake文件包含允許的字符集名稱列表)                    
-DDEFAULT_CHARSET=gbk  

設置服務器的排序規則                 
-DDEFAULT_COLLATION=gbk_chinese_ci  

設置mysql數據庫文件目錄
-DMYSQL_DATADIR=/data/mysqldb/

設置mysql服務器監聽端口,默認為3306
-DMYSQL_TCP_PORT=3306                    

以下存儲引擎選項:
    其中yISAM,MERGE,MEMORY,和CSV引擎是默認編譯到服務器中,並不需要明確地安裝。
    靜態編譯一個存儲引擎到服務器,使用-DWITH_engine_STORAGE_ENGINE= 1
    可用的存儲引擎值有:ARCHIVE, BLACKHOLE, EXAMPLE, FEDERATED, INNOBASE (InnoDB), PARTITION (partitioning support), PERFSCHEMA (Performance Schema)
-DWITH_INNOBASE_STORAGE_ENGINE=1        
-DWITH_ARCHIVE_STORAGE_ENGINE=1
-DWITH_BLACKHOLE_STORAGE_ENGINE=1
-DWITH_FEDERATED_STORAGE_ENGINE=1
-DWITH_PARTITION_STORAGE_ENGINE=1

# make ; make install

 

 注:如果要重新運行配置,需要刪除解壓包中的CMakeCache.txt文件

# ls mysql-5.6.31 |grep CMakeCache.txt
CMakeCache.txt

 

 


初始化與配置

1. 對相關目錄進行授權

# chown  mysql:mysql  /usr/localmysql  -R
# chown  mysql:mysql  /data            -R
# chown  mysql:mysql  /opt/mysqltmp    -R

 

2. 初始化

開始初始化
# /usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql/ --datadir=/data/mysqldb/

看到此時數據目錄下產生了什麼
# ls /data/mysqldb/
binlog  ibdata1  ib_logfile0  ib_logfile1  log  mysql  performance_schema  test

復制mysql服務啟動腳本並修改權限
# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
# chmod 755 /etc/init.d/mysqld 

修改mysql服務啟動腳本(單實例安裝其實可以不做這一步)
# vim /etc/init.d/mysqld
basedir=/usr/local/mysql
datadir=/data/mysqldb

 

3.  配置文件

默認在/etc下生成了my.cnf
# ls /etc/ | grep my.cnf
my.cnf

如果沒有也可以拷貝擠壓包或安裝目錄中的默認配置文件
mysql-5.6.31/support-files/my-default.cnf
/usr/local/mysql/support-files/my-default.cnf

 ###配置文件解析###

# vim /etc/my.cnf
[client]
port = 3306               //客戶端所連接的端口號
socket = /tmp/mysql.sock  //客戶端所連接的sock文件存放位置

[mysqld]
#base
port = 3306                  //mysql的默認端口號,可以修改
user = mysql                 //mysql用戶指定
socket = /tmp/mysql.sock     //連接所使用的端口號
pid-file = /tmp/mysql.pid    //進程運行的主PID文件
basedir = /usr/local/mysql   //Mysql安裝目錄
datadir = /data/mysqldb      //Mysql數據目錄
tmpdir = /opt/mysqltmp       //Mysql臨時表目錄
open_files_limit = 10240     //打開文件句柄的數量
explicit_defaults_for_timestamp 
sql_mode = NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
federated                    //支持sql語法和數據校驗等.sql_mode三種模式 
ANSI模式:寬松模式,對插入數據進行校驗,如果不符合定義類型或長度,對數據類型調整或者截斷保存,報“warning”警告
TRADITIONAL模式:嚴格模式,當向mysql數據插入數據時、進行數據的嚴格校驗,保證數據不能插入,報error錯誤,用於事物時,會進行事物回滾.
STRICT_TRANS_TABLES模式:嚴格模式,進行數據的嚴格校驗,錯誤數據不能插入,報error錯誤.

server_id = 706                //主從復制唯一的服務辨識號,數值位於 1 到
#replicate-do-db = posp        //定義唯一復制的庫
#replicate-ignore-db = mysql  //定義唯一復制的庫
#log-slave-updates = 1        //這個選項之再主從復制。從服務器上打開復制主的信息
event_scheduler=1             //打開時間調度器

max_connections = 2000      //最大並發連接數 ,增大該值需要相應增加允許打開的文件描述符數
max_connect_errors = 10000  //如果某個用戶發起的連接error超過該數值,則該用戶的下次連接將被阻塞
interactive_timeout = 600   //服務器關閉交互連接前等待活動的秒數
wait_timeout = 600          //服務器關閉非交互連接之前等待活動的秒數
skip-name-resolve           //garnt時,必須使用ip,不能使用主機名,禁用DNS解析
sync_binlog = 0             //可以保證事務的安全。缺省為0
log_bin_trust_function_creators = 1  //打開mysql可自定義函數

character-set-server = utf8      //設定字符集
default_storage_engine = InnoDB  //定義默認引擎

#log
log-bin = /data/mysqldb/binlog/mysql-bin  //指定binlog二進制日志的文件名稱
binlog_cache_size = 32m   //binlog的緩存大小
max_binlog_cache_size = 10g //設定最大的binlog緩存
binlog_stmt_cache_size = 32m //設定最小的binlo緩存
table_open_cache = 2048 //表描述符緩存大小,可減少文件打開/關閉次數
max_binlog_size = 1024m //設置binlog日志文件最大為1G
binlog_format = mixed //binlog日志格式.
log_output = FILE //確認輸出到日志文件
log-error = /data/mysqldb/log/mysql-error.log //mysql系統錯誤日志輸出
slow_query_log = 1  //打開慢日志記錄
slow_query_log_file = /data/mysqldb/log/mysql-slow_query.log //定義慢日志輸出的路徑
general_log = 0  //定義普通日志
general_log_file = /data/mysqldb/log/mysql-general-query.log //定義普通日志輸出的路徑
expire-logs-days = 30 //日志保留的時間為30天
relay-log = /data/mysqldb/binlog/relay-bin //定義reloa_log復制的地址
relay-log-index= /data/mysqldb/binlog/relay-bin.index //定義reloa_log索引

#buffer
sort_buffer_size = 2m      //MyISAM表發生變化時重新排序所需的緩沖。一般64M足矣
read_buffer_size = 2m      //用來做MyISAM表全表掃描的緩沖大小.
read_rnd_buffer_size = 2m  //當在排序之後,從一個已經排序好的序列中讀取行時,行數據將從這個緩沖中讀取來防止磁盤尋道
join_buffer_size = 2m      //InnoDB用來緩存數據和

net_buffer_length = 16k         //執行mysqldump時,net buffer length的最大上限是16Mb,默認值是1Mb
max_allowed_packet = 512m       //每個連接獨立的大小.大小動態增加 
bulk_insert_buffer_size = 32m   //當突發插入被檢測到時此緩沖將被分配用於myisam
max_heap_table_size = 512m      //內存表的大小
tmp_table_size = 512m           //內部(內存中)臨時表的最大大小 
thread_cache_size = 100         //緩存可重用的線程數,可以適當的調整
query_cache_size = 256m         //指定MySQL查詢結果緩沖區的大小。調優可以適當調整
query_cache_limit = 10m        //緩存單條SQL的結果集上限。默認4KB。調優可以適當調整
query_cache_min_res_unit = 4k
key_buffer_size = 16m             //關鍵詞緩沖的大小, 一般用來緩沖MyISAM表的索引塊
myisam_sort_buffer_size = 64m     //這在每個線程中被分配.所以在設置大值時需要小心
myisam_max_sort_file_size = 10g  
//MySQL重建索引時所允許的最大臨時文件的大小如果文件大小比此值更大,索引會通過鍵值緩沖創建(更慢) myisam_repair_threads = 1        //如果一個表擁有超過一個索引, MyISAM #innodb innodb_file_per_table = 1       //可以修改InnoDB為獨立表空間模式,每個數據庫的每個表都會生成一個數據空間 innodb_data_file_path = ibdata1:2048M:autoextend //如果你只有單個邏輯驅動保存你的數據,一個單個的自增文件就足夠好了 innodb_log_file_size = 128m     //在日志組中每個日志文件的大小, innodb_log_files_in_group = 3   //在日志組中的文件總數. 通常來說2~3是比較好的 innodb_buffer_pool_size = 1g    //innodb緩存池大小 innodb_buffer_pool_instances = -1 innodb_max_dirty_pages_pct = 70 //在InnoDB緩沖池中最大允許的髒頁面的比例. 60-90都可以 #innodb_thread_concurrency = 8 innodb_flush_method = O_DIRECT innodb_log_buffer_size = 16m  //用來緩沖日志數據的緩沖區大小,當此值快滿時,InnoDB必須刷新數據到磁盤上 innodb_flush_log_at_trx_commit = 2 //0代表日志只大約每秒寫入日志文件並且日志文件刷新到磁盤,2代表日志寫入日志文件在每次提交後,但是日志文件只有大約每秒才會刷新到磁盤上 [mysql] no-auto-rehash                //可以在命令使用tab鍵補齊 prompt = (\u@\h) [\d]\_       //在mysql命令顯示主機名字 default-character-set = utf8 //設定字符集合

 

 


服務啟動與環境變量設置

1. 設置環境變量

# vim /etc/profile
MYSQL=/usr/local/mysql/bin
PATH=$PATH:$MYSQL
export PATH

# source /etc/profile 

 

2. 啟動服務

# /etc/init.d/mysqld start

 

啟動的報錯與解決見博文:《mysql啟動報錯(1)——2個例子》

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved