mysql5.6快速安裝及參數詳解

来源:http://www.cnblogs.com/feiren/archive/2017/10/20/7697767.html
-Advertisement-
Play Games

一、所需軟體 二、安裝說明 三、安裝 1、下載yum源。 官網地址:http://dev.mysql.com/downloads/repo/yum/ centos7系統: wget http://dev.mysql.com/get/mysql57-community-release-el7-7.no ...


一、所需軟體

軟體名稱版本下載地址當前環境管理員賬號/密碼
mysql 5.6 yum安裝 centOS6.7系統 zxfly/zxfly

二、安裝說明

資料庫所在目錄/database/mysql新建目錄mysql
sock文件路徑 /var/lib/mysql/mysql.sock 自動生成
配置文件路徑 /etc/my.cnf  
慢查詢日誌路徑 /var/log/mysql/mysql_slow_query.log 新建mysql日誌目錄
錯誤日誌路徑 /var/log/mysql/mysqld.log  
pid文件 /var/run/mysqld/mysqld.pid 自動生成
binlog日誌文件 /database/mysql-bin/mysql_bin*.log 新建目錄mysql-bin

三、安裝

1、下載yum源。

官網地址:http://dev.mysql.com/downloads/repo/yum/ 

centos7系統:

wget http://dev.mysql.com/get/mysql57-community-release-el7-7.noarch.rpm

centos6系統:

wget http://dev.mysql.com/get/mysql57-community-release-el6-7.noarch.rpm

2、安裝rpm

rpm -Uvh mysql57-community-release-el6-7.noarch.rpm

3、修改yum源配置

 vim /etc/yum.repos.d/mysql-community.repo

安裝mysql5.6操作

1、將enabled=1更改為enabled=0

2、將enabled=0更改為enabled=1

如圖:

 

4、安裝mysql

yum install mysql-community-server

5、替換配置文件

主庫配置文件:

 1 [mysqld]
 2 user=mysql
 3 datadir=/database/mysql
 4 socket=/var/lib/mysql/mysql.sock
 5 
 6 skip-name-resolve
 7 
 8 # Disabling symbolic-links is recommended to prevent assorted security risks
 9 symbolic-links=0
10 
11 #slow_queries
12 slow_query_log_file = /var/log/mysql/mysql_slow_query.log
13 long_query_time=1
14 slow_query_log=1
15 #binlog
16 server-id=77
17 log_bin=/database/mysql-bin/mysql_bin
18 binlog_format=mixed
19 expire_logs_days=7
20 
21 #innodb
22 innodb_buffer_pool_size=104G
23 innodb_log_file_size=512M
24 innodb_log_buffer_size = 8M
25 innodb_flush_log_at_trx_commit=2
26 innodb_file_per_table=1
27 innodb_file_io_threads=4
28 innodb_flush_method=O_DIRECT
29 innodb_io_capacity=2000
30 innodb_io_capacity_max=6000
31 innodb_lru_scan_depth=2000
32 innodb_thread_concurrency = 0
33 
34 #cache
35 ##內部記憶體臨時表的最大值
36 tmp_table_size=2G
37 character-set-server=utf8
38 collation-server=utf8_general_ci
39 ##即跳過外部鎖定
40 skip-external-locking
41 ##MySQL能暫存的連接數量(根據實際設置)
42 back_log=1024
43 ##指定索引緩衝區的大小,只對MyISAM表起作用,這裡寫上也沒有關係
44 key_buffer_size=1024M
45 ##這條指令限定用於每個資料庫線程的棧大小
46 thread_stack=256k
47 ##當一個查詢不斷地掃描某一個表,MySQL會為它分配一段記憶體緩衝區
48 read_buffer_size=8M
49 ##線程緩存
50 thread_cache_size=64
51 ##查詢緩存大小
52 query_cache_size=128M
53 ##內部記憶體臨時表的最大值,每個線程都要分配
54 max_heap_table_size=256M
55 ##將查詢結果放入查詢緩存中
56 query_cache_type=1
57 ##代表在事務過程中容納二進位日誌SQL語句的緩存大小
58 binlog_cache_size = 2M
59 ##同樣是緩存表大小
60 table_open_cache=128
61 ##緩存線程
62 thread_cache=1024
63 
64 wait_timeout=18000
65 ##表和表聯接的緩衝區的大小
66 join_buffer_size = 1024M
67 ##是一個connection級參數,在每個connection第一次需要使用這個buffer的時候,一次性分配設置的記憶體
68 sort_buffer_size=8M
69 ##隨機讀取數據緩衝區使用記憶體
70 read_rnd_buffer_size = 8M
71 
72 #connect
73 ##是一個MySQL中與安全有關的計數器值,它負責阻止過多嘗試失敗的客戶端以防止暴力破解密碼
74 max-connect-errors=100000
75 ##連接數
76 max-connections=3000
77 ##開啟查詢緩存
78 explicit_defaults_for_timestamp=true
79 ##mysql伺服器能夠工作在不同的模式下,並能針對不同的客戶端以不同的方式應用這些模式
80 sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
81 
82 [mysqldump]
83 quick
84 
85 [mysqld_safe]
86 log-error=/var/log/mysql/mysqld.log
87 pid-file=/var/run/mysqld/mysqld.pid
mysql主庫配置文件

從庫配置文件:

  1 # For advice on how to change settings please see
  2 # http://dev.mysql.com/doc/refman/5.6/en/server-configuration-defaults.html
  3 
  4 [mysqld]
  5 #
  6 # Remove leading # and set to the amount of RAM for the most important data
  7 # cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
  8 # innodb_buffer_pool_size = 128M
  9 #
 10 # Remove lead/ing # to turn on a very important data integrity option: logging
 11 # changes to the binary log between backups.
 12 # log_bin
 13 #
 14 # Remove leading # to set options mainly useful for reporting servers.
 15 # The server defaults are faster for transactions and fast SELECTs.
 16 # Adjust sizes as needed, experiment to find the optimal values.
 17 # join_buffer_size = 128M
 18 # sort_buffer_size = 2M
 19 # read_rnd_buffer_size = 2M
 20 user=mysql
 21 datadir=/database/mysql
 22 socket=/var/lib/mysql/mysql.sock
 23 server-id=214 #以ip為mysql的server-id
 24 skip-name-resolve
 25 
 26 # Disabling symbolic-links is recommended to prevent assorted security risks
 27 symbolic-links=0
 28 
 29 #slow_queries
 30 slow_query_log_file = /var/log/mysql/mysql_slow_query.log
 31 long_query_time=1
 32 slow_query_log=1
 33 
 34 #innodb
 35 innodb_buffer_pool_size=16G
 36 innodb_log_file_size=512M
 37 innodb_log_buffer_size = 8M
 38 innodb_flush_log_at_trx_commit=2
 39 innodb_file_per_table=1
 40 innodb_file_io_threads=4
 41 innodb_flush_method=O_DIRECT
 42 innodb_io_capacity=2000
 43 innodb_io_capacity_max=6000
 44 innodb_lru_scan_depth=2000
 45 innodb_thread_concurrency = 0
 46 
 47 #cache
 48 ##內部記憶體臨時表的最大值
 49 tmp_table_size=2G
 50 character-set-server=utf8
 51 collation-server=utf8_general_ci
 52 ##即跳過外部鎖定
 53 skip-external-locking
 54 ##MySQL能暫存的連接數量(根據實際設置)
 55 back_log=1024
 56 ##指定索引緩衝區的大小,只對MyISAM表起作用,這裡寫上也沒有關係
 57 key_buffer_size=1024M
 58 ##這條指令限定用於每個資料庫線程的棧大小
 59 thread_stack=256k
 60 ##當一個查詢不斷地掃描某一個表,MySQL會為它分配一段記憶體緩衝區
 61 read_buffer_size=8M
 62 ##線程緩存
 63 thread_cache_size=64
 64 ##查詢緩存大小
 65 query_cache_size=128M
 66 ##內部記憶體臨時表的最大值,每個線程都要分配
 67 max_heap_table_size=256M
 68 ##將查詢結果放入查詢緩存中
 69 query_cache_type=1
 70 ##代表在事務過程中容納二進位日誌SQL語句的緩存大小
 71 binlog_cache_size = 2M
 72 ##同樣是緩存表大小
 73 table_open_cache=128
 74 ##緩存線程
 75 thread_cache=1024
 76 
 77 wait_timeout=18000
 78 ##表和表聯接的緩衝區的大小
 79 join_buffer_size = 1024M
 80 ##是一個connection級參數,在每個connection第一次需要使用這個buffer的時候,一次性分配設置的記憶體
 81 sort_buffer_size=8M
 82 ##隨機讀取數據緩衝區使用記憶體
 83 read_rnd_buffer_size = 8M
 84 
 85 #connect
 86 ##是一個MySQL中與安全有關的計數器值,它負責阻止過多嘗試失敗的客戶端以防止暴力破解密碼
 87 max-connect-errors=100000
 88 ##連接數
 89 max-connections=3000
 90 ##開啟查詢緩存
 91 explicit_defaults_for_timestamp=true
 92 ##mysql伺服器能夠工作在不同的模式下,並能針對不同的客戶端以不同的方式應用這些模式
 93 sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
 94 
 95 [mysqldump]
 96 quick
 97 
 98 [mysqld_safe]
 99 log-error=/var/log/mysql/mysqld.log
100 pid-file=/var/run/mysqld/mysqld.pid
mysql從庫配置文件

複製配置文件到/etc/my.cnf

主庫:cp my.cnf /etc/my.cnf

從庫:cp my_web_slave.cnf /etc/my.cnf

6、編輯配置文件:

vim /etc/my.cnf

#修改server-id=171替換成

server-id=[配置為安裝資料庫所在伺服器的ip]

說明:如果部署的mysql服務是作為從庫來使用的話,還需要將bin_log項給註釋掉。

7、創建目錄

創建日誌所在目錄

mkdir -p /var/log/mysql

chown -R mysql.mysql /var/log/mysql

創建數據所在目錄

mkdir -p /database/mysql

chown -R mysql.mysql /database/mysql

創建binlog所在目錄(如果作為從庫的話,可以跳過)

mkdir -p /database/mysql-bin

chown -R mysql.mysql /database/mysql-bin

8、初始化、啟動

初始化資料庫

mysql_install_db --user=mysql --datadir=/database/mysql

啟動

service mysqld start #(第一次時間會相對長點,需要初始化,請耐心等待)

9、初始化配置

命令 mysql_secure_installation

Enter current password for root (enter for none):[回車跳過]

et root password? [Y/n] y  [是否設置root密碼]
New password:                  [輸入:zxfly]
Re-enter new password:    [輸入:zxfly]
Remove anonymous users? [Y/n] y [刪除匿名用戶]
Disallow root login remotely? [Y/n] y [禁止root遠程登錄]
Remove test database and access to it? [Y/n] y [刪除test資料庫]
Reload privilege tables now? [Y/n] y [刷新許可權]

10、創建一個管理員賬號

#登錄mysql

mysql -uroot -pzxfly

#創建賬號 grant all on *.*  to   'zxfly'@'192.168.0.% ' identified by 'zxfly';          [授權管理所用庫] FLUSH PRIVILEGES;                                          [刷新許可權,寫入磁碟]

四、主從複製

MySQL主從部署文檔

五、配置文件說明

1、基本配置

[mysqld]

#配置項說明
1 user=mysql 啟動用戶
2 datadir=/database/mysql 資料庫所在路徑
3 socket=/var/lib/mysql/mysql.sock sock文件所在目錄
4 skip-name-resolve 禁用DNS解析,訪問太慢加入此優化
5 symbolic-links=0 關閉符號連接
6 slow_query_log_file = /var/log/mysql_slow_query.log 慢查詢日誌所在路徑
7 long_query_time=1 記錄1秒以上的慢查詢
8 slow_query_log=1 開啟慢查詢
9 server-id=171 每一個mysql實例設置一個獨立的server-id一般以IP定義
10 log_bin=/database/mysql/mysql_bin 二進位文件所在路徑及格式
11

binlog_format=mixed

定義二進位文件輸出的格式(混合型)

可定義類型:

1、row

詳細記錄所有,會產生大量的日誌。

2、statement(預設)

記錄sql語句,及其位置。在複雜的語句時可能記錄不正確。

3、mixed

以上兩種的結合,會自動選擇。

12 sync-binlog=1

預設為0 1是最安全的。

1、當出現錯誤的時候,設置為1,最多會丟失一個事務。

2、他是最慢的選擇。

3、但是確保恢復快的話,應該由雙電源緩存機制存在。

13 expire_logs_days=14 保留二進位文件的天數

[mysqld_safe]

#配置項說明
1 log-error=/var/log/mysqld.log 錯誤日誌路徑
2

pid-file=/var/run/mysqld/mysqld.pid

pid文件所在路徑

2、優化項配置

#innodb引擎優化

#配置項說明
1 innodb_buffer_pool_size=104G

緩存innodb表的索引,數據,插入數據時的緩衝,

1、官方建議設置為記憶體大小的80%,線上所掛載的大小為160G,可用130G,所以設置為104G

2、

2 innodb_log_file_size=512M

事務日誌的大小

官方推薦為:日誌大小*日誌組大小(預設為2)不能超過512G

1、該值越大,寫入磁碟IO越小,

2、該值越大,出現錯誤恢復越難

3、預設為48M,修改為512M,也就是在大併發的時候1G的日誌刷入。

4、如果該值調大,並且為了減少崩潰恢復,應該將下main的innodb_flush_log_at_trx_commit改為1

3 innodb_log_buffer_size = 8M 事務在記憶體中的緩衝大小
4 innodb_flush_log_at_trx_commit=2 每秒將事務日誌刷到磁碟中 (0:每秒刷一次 1:提交事務就刷入磁碟 2:有事務執行,然後每秒刷一次)
5 innodb_file_per_table=1 開啟共用表空間自動收縮
6 innodb_file_io_threads=4 可用的IO線程數
7 innodb_flush_method=O_DIRECT 定義刷寫模式(預設為:fdatasync) O_DIRECT會最小化緩衝對io的影響,
8 innodb_io_capacity=2000 定義讀寫IO的能力 和磁碟轉速及大小有關
9 innodb_io_capacity_max=6000 每秒最大IO能力
10 innodb_lru_scan_depth=2000 一般與innodb_io_capacity的值相同
11 innodb_thread_concurrency = 0 不限制併發線程數

#cache緩存優化


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 一、Oracle 中的分頁 1) select * from emp; 2)select * ,rownum from emp; //這樣寫不行 3)select ename,job,sal,rownum from emp; //可以 ENAME JOB SAL ROWNUM SMITH CLERK ...
  • 關於游標,首先要知道游標的定義。 游標,是記憶體中的一款區域,用來存放select的結果集 游標用來處理從資料庫中檢索的多行記錄(使用select語句)。利用游標,程式可以逐個的處理和遍歷一次索引返回的整個記錄集。 在資料庫中,存在兩種游標: 一、顯示游標(需要明確定義) 顯示游標被用於處理返回多行數 ...
  • 轉載自:http://www.cnblogs.com/BlackWizard2016/p/5143816.html,侵刪,只為學習所用. 1.1 什麼是集群 簡單的說,集群(cluster)就是一組電腦,它們作為一個整體向用戶提供一組網路資源。這些單個的電腦系統就是集群的節點(node)。一個理 ...
  • 一、基礎 1、說明:創建資料庫 CREATE DATABASE database-name 2、說明:刪除資料庫 drop database 資料庫名 3、說明:備份sql server 創建 備份數據的 device USE master EXEC sp_addumpdevice 'disk',  ...
  • /*學習事物基本語法*/ /*增加課室名的唯一索引*/ALTER table class add constraint uni_ClassName unique(name) /*創建存儲過程,其中增加教師,並增加課室*/CREATE proc pro_AddClass @className varc ...
  • //班主任表 CREATE TABLE [dbo].[teacher]( [id] [int] IDENTITY(1,1) NOT NULL primary key, [name] [varchar](50) NOT NULL, [sj] [datetime] default(getdate()) ...
  • 游標 游標存在意義:解決“select *”返回空、多行記錄問題,但凡select,就可能多行結果集,也就需要用游標。 游標分4步走:cursor、open、fetch、close 可能省略open、close,用for ... in ... loop ... end loop; 1、靜態游標: ( ...
  • 以前寫過一篇文章IO is frozen on database xxx, No user action is required“, 主要是介紹PlateSpin在伺服器層面做DR備份時,SQL Server日誌裡面有"I/O is frozen on database xxxx"以及“I/O wa... ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...
#配置項說明
1 tmp_table_size=2G 內部(記憶體中)臨時表的最大大小
2 character-set-server=utf8 更改預設字元集
3 collation-server=utf8_general_ci 指定字元串的比對規則
4 skip-external-locking 跳過外部鎖定
5 back_log=1024 監聽隊列中所能保持的連接數
6 key_buffer_size=1024M 關鍵詞緩衝的大小
7 thread_stack=256k 線程使用的堆大小. 此容量的記憶體在每次連接時被預留
8 read_buffer_size=8M 全表掃描的緩衝大小
9 thread_cache_size=64 在cache 中保留用於重用的線程個數
10 query_cache_size=128M 查詢緩衝大小,保留select查詢,下次同樣查詢可以直接返回結果
11 max_heap_table_size=256M 每個表所允許的記憶體的最大容量(防止記憶體被大表直接占用完)
13 query_cache_type=1 開啟查詢緩存
14 binlog_cache_size = 2M binlog記錄事務所保留的緩存大小
15 table_open_cache=128 每個線程允許打開表的數量
16 thread_cache=1024 保留的用於從重用的線程數
17 thread_concurrency=24 向系統發送希望用到的線程的個數(一般為CPU的數量的二到四倍)
18 wait_timeout=18000 sleep操作最大等待時間(即一個後臺運行的命令最大時間)
19 join_buffer_size = 1024M 優化全聯合,當聯合表操作時,使用此緩存
20 sort_buffer_size=8M 排序操作緩存
21 read_rnd_buffer_size = 8M 排序完成後會放入此緩存,可以減少磁碟IO